![]() |
| 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. |
Gesture,igLongTap Kullanımı |
Yanıt Yaz
|
| Yazar | |
kaanl0
Yeni Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 38 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: Gesture,igLongTap KullanımıGönderim Zamanı: 3 Saat 43 Dakika Önce Saat 14:40 |
|
Componentlere basılı tutunca gerçekleşecek eylemler için igLongTap kullanmak istiyorum ( sanırsam sadece mobil uygulamada calısıyor) aşağıdaki koddaki gibi deneme yaptığımda prosedür 1den fazla kez çalışıyor. Aynı zamanda igZoom ile kullandığım İmagelara zoom yapabilmek istiyorum fakat birkaç deneme yapmama rağmen çalıştıramadım. Varsa örnek atabilirmisiniz?
var myForm:TclForm; GestureImg:TClImage; void BtnOnGesture; { ShowMessage('MERHABA'); } { myForm = TClForm.Create(Self); GestureImg = myForm.AddNewImage(MyForm, 'GestureImg'); MyForm.setImage(GestureImg,'https://clomosy.com/demos/bg.png'); GestureImg.Align = alCenter; GestureImg.Height = 300; GestureImg.Width = 300; MyForm.clSetTouchIG(igLongTap,GestureImg); MyForm.AddNewEvent(GestureImg, tbeOnGesture, 'BtnOnGesture'); myForm.Run; }
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Puanlar: 468 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 55 Dakika Önce Saat 15:28 |
|
Merhaba Kaan,
birden fazla kez çalışmasının nedeni ekrana parmağımızı basılı tuttuğumuz da işletim sistemi bunu bir tık olarak değil de bir süreç olarak algılıyor. Gesture genellikle üç aşamadan oluşuyor; başlangıç değişim bitiş olarak Yazdığın kodda prosedür bu aşamaların hepsin de tetiklendiği için showMessage birden fazla gözüküyor. Çözüm olarak prosedür içerisine bir kontrol koyarak işlemin bir kere yapılmasını deneyebilir misin? https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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"> |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Puanlar: 468 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 54 Dakika Önce Saat 15:29 |
|
Docs da sadece tek bir örnek var.
Kendim bir kaç örnek deneyip seninle paylaşacağım https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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"> |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Puanlar: 468 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 2 Saat 42 Dakika Önce Saat 15:41 |
|
Şu an için OnClick'le bir IMG zoom yapılabilmeyi atıyorum, projende kullanabilmen için,
var myForm: TclForm; GestureImg: TClImage; InfoLbl: TclLabel; IsZoomed: Boolean; void BtnOnClick; { // resim şu an normal boyutunda if IsZoomed == False { // X ve Y ekseninde 2 kat büyüt GestureImg.Scale.X = 2.0; GestureImg.Scale.Y = 2.0; InfoLbl.Text = 'Durum: ZOOM YAPILDI'; // Artık zoom yapıldığını işaretle IsZoomed = True; } // Eğer resim zaten büyükse (Zoom yapılmışsa) else { // Ölçeği normale (1.0) döndür GestureImg.Scale.X = 1.0; GestureImg.Scale.Y = 1.0; InfoLbl.Text = 'Durum: Normal'; // Zoom durumunu kaldır IsZoomed = False; } } { myForm = TClForm.Create(Self); // Başlangıçta zoom yapılmamış IsZoomed = False; // Bilgi Etiketi InfoLbl = myForm.AddNewLabel(MyForm, 'InfoLbl', 'Durum: Normal (Büyütmek için tıkla)'); InfoLbl.Align = alTop; InfoLbl.Height = 30; InfoLbl.StyledSettings = ssFamily; InfoLbl.TextSettings.Font.Size = 16; InfoLbl.Margins.Top = 20; GestureImg = myForm.AddNewImage(MyForm, 'GestureImg'); MyForm.setImage(GestureImg, 'https://clomosy.com/demos/bg.png'); GestureImg.Align = alCenter; GestureImg.Height = 200; GestureImg.Width = 200; // Hem mobilde hem PC'de çalışır. MyForm.AddNewEvent(GestureImg, tbeOnClick, 'BtnOnClick'); myForm.Run; } https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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">
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Puanlar: 468 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 22 Dakika Önce Saat 18:01 |
|
Merhaba Kaan,
GESTURE kullanarak yaptığım örneği aşağıya ekliyorum. İncelersin; var myForm: TclForm; gestureImg: TClImage; statusLbl: TclLabel; currentScale: Single; ProPanel1 : TclProPanel; void OnGestureDetected; { // SINIR KONTROLLERİ // Sol Sınır if gestureImg.Position.X < 0 gestureImg.Position.X = 0; // Sağ Sınır if gestureImg.Position.X > (ProPanel1.Width - gestureImg.Width) gestureImg.Position.X = ProPanel1.Width - gestureImg.Width; // Üst Sınır if gestureImg.Position.Y < 0 gestureImg.Position.Y = 0; // Alt Sınır if gestureImg.Position.Y > (ProPanel1.Height - gestureImg.Height) gestureImg.Position.Y = ProPanel1.Height - gestureImg.Height; currentScale = gestureImg.Scale.X; if currentScale < 3.0 { gestureImg.Scale.X = currentScale + 0.1; gestureImg.Scale.Y = currentScale + 0.1; statusLbl.Text = 'Zoom Seviyesi: ' + FloatToStr(gestureImg.Scale.X); } else { statusLbl.Text = 'Maksimum sınıra ulaşıldı! (3x)'; } } void OnImgClick; { statusLbl.Text = 'Resim Sıfırlandı.'; gestureImg.Scale.X = 1.0; gestureImg.Scale.Y = 1.0; // Resmi tekrar panelin ortasında gestureImg.Position.X = (ProPanel1.Width - gestureImg.Width) / 2; gestureImg.Position.Y = (ProPanel1.Height - gestureImg.Height) / 2; } { myForm = TclForm.Create(Self); statusLbl = myForm.AddNewLabel(MyForm, 'statusLbl', 'Resim üzerinde hareket deneyin'); statusLbl.Align = alMostTop; statusLbl.Height = 50; statusLbl.StyledSettings = ssFamily; statusLbl.TextSettings.Font.Size = 18; statusLbl.TextSettings.WordWrap = True; // Panel Oluşturma ProPanel1 = myForm.AddNewProPanel(myForm, 'ProPanel1'); ProPanel1.Align = alClient; ProPanel1.Margins.Top = 10; ProPanel1.Margins.Left = 10; ProPanel1.Margins.Right = 10; ProPanel1.Margins.Bottom = 10; ProPanel1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#016f0e'); ProPanel1.clProSettings.RoundHeight = 10; ProPanel1.clProSettings.RoundWidth = 10; ProPanel1.clProSettings.BorderWidth = 2; ProPanel1.clProSettings.IsFill = True; ProPanel1.clProSettings.IsRound = True; ProPanel1.SetclProSettings(ProPanel1.clProSettings); gestureImg = myForm.AddNewImage(ProPanel1, 'gestureImg'); MyForm.setImage(gestureImg, 'https://clomosy.com/demos/bg.png'); gestureImg.Align = alNone; gestureImg.Height = 150; gestureImg.Width = 150; // Resmi Başlangıçta Panelin Ortasında gestureImg.Position.X = (ProPanel1.Width - gestureImg.Width) / 2; gestureImg.Position.Y = (ProPanel1.Height - gestureImg.Height) / 2; MyForm.clSetTouchIG(igZoom, gestureImg); // Olayları Bağla MyForm.AddNewEvent(gestureImg, tbeOnGesture, 'OnGestureDetected'); MyForm.AddNewEvent(gestureImg, tbeOnClick, 'OnImgClick'); myForm.Run; } https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" 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">
|
|
![]() |
|
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 |