![]() |
| Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
mouse eventları |
Yanıt Yaz
|
| Yazar | |
MenesKaya
Yeni Üye
Kayıt Tarihi: Dün Konum: Konya Durum: Aktif Değil Puanlar: 4 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı MenesKaya
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: mouse eventlarıGönderim Zamanı: 7 Saat 39 Dakika Önce 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'); 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" 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;">
|
|
![]() |
|
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 227 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 4 Saat 3 Dakika Önce 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 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'); 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" 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">
|
|
![]() |
|
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 227 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 3 Saat 60 Dakika Önce 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 |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |