Sayfayı Yazdır | Pencereyi Kapat

mouse eventları

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1472
Tarih: 22 Haziran 2026 Saat 03:24
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: mouse eventları
Mesajı Yazan: MenesKaya
Konu: mouse eventları
Mesaj Tarihi: 05 Mayıs 2026 Saat 12:44
var
girisyuz: TclForm
logo1: TClProImage
anapanel: TclProPanel
ustabtn,musteribtn : TclProButton
void OnUstaEnter;
{
  clComponent.SetupComponent(ustabtn, '{"BorderColor":"#FF8C00", "BorderWidth":2}');
}

{
///////////
girisyuz=TclForm.Create(Self);
girisyuz.SetFormColor('#12192C','',clGNone);
girisyuz.clSetWindowState(fwsMaximized)
/////////////ANA PANEL
anapanel=girisyuz.AddNewProPanel(girisyuz, 'anapanel');
clComponent.SetupComponent(anapanel,'{"Align":"Center","Width":450,"Height":650, "BackgroundColor":"#12192C"}');
/////////////LOGO
logo1 = girisyuz.AddNewProImage(anapanel, 'logo1');
girisyuz.SetImage(logo1,' https://resmim.net/cdn/2026/05/05/CoxjKC.png" rel="nofollow - https://resmim.net/cdn/2026/05/05/CoxjKC.png ');
clComponent.SetupComponent(logo1, '{"Align":"Top", "Height":200,"Width":200}');
logo1.RotationAngle= 5
//////////USTA BUTON
ustabtn=girisyuz.AddNewProButton(anapanel, 'ustabtn','   Ben Ustayım' + #13 + '   Müşteri kabul et ve işlem kaydet');
clComponent.SetupComponent(ustabtn,'{"Align":"Top", "MarginTop":50, "Height":80, "BackgroundColor":"#1C253E", "RoundHeight":15, "RoundWidth":15, "BorderColor":"#1C253E", "BorderWidth":1,"TextSize":14, "TextColor":"#FFFFFF","TextBold":"yes"}')
girisyuz.AddNewEvent(ustabtn, tbeOnMouseMove , 'OnUstaEnter');
girisyuz.run;
}


kodum bu şekilde başlatınca çalışıyor ama mouseyi buton üstüne getirdiğimde border rengi değişmiyor 
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous" style="display: none !important;">



Cevaplar:
Mesajı Yazan: M-Guney
Mesaj Tarihi: 05 Mayıs 2026 Saat 16:20
Mouse'un hareketlerini dinleyen bir event mevcut fakat hover yani üzerine gelme durumunu dinleyen bir event clomosy de mevcut değil ama yine de yapılabilinir.

Alt kısımdaki örnekte senin kullanmış olduğun setup component yapısını clprosettings yapısına çevirdim. SetupComponent yapısından daha güncel bir yapıdır. İnecelemek istersen :  https://www.docs.clomosy.com/Pro_Object_Properties" rel="nofollow - https://www.docs.clomosy.com/Pro_Object_Properties

Kullanılan Yapı ise farenin o anki konumuna göre kimin "shout" (bağırdığını) takip eder. Eğer bağıran (ustabtn) butonun kendisi değilse, butonun stilini anında eski haline döndürür.

var
  girisyuz: TclForm;
  logo1: TClProImage;
  anapanel: TclProPanel;
  ustabtn, musteribtn: TclProButton;
  // Durumu takip etmek için global bir boolean
  isHoveredNow: Boolean;

void ManageHover(target: TclProButton);
var
  HoverState: Boolean;
{
  // Mevcut durumu hesapla (içeride miyiz?)
  HoverState = (girisyuz.clSender == target);
  
  // Eğer durum değişmediyse (hala içerdeyiz veya hala dışardayız), hiçbir şey yapma ve çık
  // Bu kontrol SetclProSettings'in her frame'de çalışmasını engeller
  if (HoverState == isHoveredNow)
  {
    // Fonksiyondan çık
    Exit;
  }

  // Durum değiştiyse (Giriş veya Çıkış gerçekleştiyse) işlem yap
  if (HoverState)
  {
    // Giriş anı: Sadece 1 kez çalışır
    target.clProSettings.BorderColor = clAlphaColor.clHexToColor('#FF8C00');
    target.clProSettings.BorderWidth = 2;
    target.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#25304E');
  }
  else
  {
    // Çıkış anı: Sadece 1 kez çalışır
    target.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1C253E');
    target.clProSettings.BorderWidth = 1;
    target.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1C253E');
  }
  
  // Sadece durum değişince bileşeni güncelle
  target.SetclProSettings(target.clProSettings);
  
  // Yeni durumu kaydet
  isHoveredNow = HoverState;
}

void OnGeneralMouseMove;
{
  ManageHover(ustabtn);
}

{
  girisyuz = TclForm.Create(Self);
  girisyuz.SetFormColor('#12192C', '', clGNone);
  girisyuz.clSetWindowState(fwsMaximized);

  anapanel = girisyuz.AddNewProPanel(girisyuz, 'anapanel');
  anapanel.Align = alCenter;
  anapanel.Width = 450;
  anapanel.Height = 650;
  anapanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#12192C');
  anapanel.SetclProSettings(anapanel.clProSettings);

  logo1 = girisyuz.AddNewProImage(anapanel, 'logo1');
  girisyuz.SetImage(logo1, ' https://resmim.net/cdn/2026/05/05/CoxjKC.png" rel="nofollow - https://resmim.net/cdn/2026/05/05/CoxjKC.png ');
  logo1.Align = alTop;
  logo1.Height = 200;
  logo1.Width = 200;
  logo1.RotationAngle = 5;

  ustabtn = girisyuz.AddNewProButton(anapanel, 'ustabtn', '   Ben Ustayım' + #13 + '   Müşteri kabul et ve işlem kaydet');
  ustabtn.Align = alTop;
  ustabtn.Height = 80;
  ustabtn.Margins.Top = 50;

  // Başlangıç tasarımı
  ustabtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1C253E');
  ustabtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  ustabtn.clProSettings.FontSize = 14;
  ustabtn.clProSettings.TextSettings.Font.Style = [fsBold];
  ustabtn.clProSettings.IsRound = True;
  ustabtn.clProSettings.RoundHeight = 15;
  ustabtn.clProSettings.RoundWidth = 15;
  ustabtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#1C253E');
  ustabtn.clProSettings.BorderWidth = 1;
  ustabtn.SetclProSettings(ustabtn.clProSettings);
  
  // State başlangıç değeri
  isHoveredNow = False;

  girisyuz.AddNewEvent(ustabtn, tbeOnMouseMove, 'OnGeneralMouseMove');
  girisyuz.AddNewEvent(anapanel, tbeOnMouseMove, 'OnGeneralMouseMove');
  girisyuz.AddNewEvent(girisyuz, tbeOnMouseMove, 'OnGeneralMouseMove');

  girisyuz.Run;
}




https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">


Mesajı Yazan: M-Guney
Mesaj Tarihi: 05 Mayıs 2026 Saat 16:23
Tam burada farenin o anki konumuna göre kimin "shout" (bağırdığını) takip eder. Eğer bağıran (ustabtn) butonun kendisi değilse, butonun stilini anında eski haline döndürür.

  girisyuz.AddNewEvent(ustabtn, tbeOnMouseMove, 'OnGeneralMouseMove');
  girisyuz.AddNewEvent(anapanel, tbeOnMouseMove, 'OnGeneralMouseMove');
  girisyuz.AddNewEvent(girisyuz, tbeOnMouseMove, 'OnGeneralMouseMove');

Eğer ki form'a yeni bir obje eklenecek ise event tanımlanmalı yoksa o objenin mouse üzerinden çıktığını anlayamaz

https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net