![]() |
| 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. |
Görsellerin Sürüklenmesi |
Yanıt Yaz
|
| Yazar | |
Raziye Nur
Yeni Üye
Kayıt Tarihi: 07 Temmuz 2025 Durum: Aktif Değil Puanlar: 17 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Raziye Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: Görsellerin SürüklenmesiGönderim Zamanı: 21 Temmuz 2025 Saat 14:33 |
|
Merhaba devremdeki boş yere görselleri sürükleyip kontrol et butonuna bastıktan sonra ampul yandı ya da yanmadı şeklinde uyarı vermesini istiyorum ama görsellerin hepsi aynı yere yukarı doğru sürükleniyor ve butona bastığımda doğru yerde olmamasına rağmen ampul yandı olarak gözüküyor sürüklemeyi doğru yapmama yardımcı olabilir misiniz?
var MyForm: TclForm; DevrePanel: TCLProPanel; ImgBakirTel, DevreGorsel, ImgTahta, ImgCivi, ImgLastik: TCLImage; SecilenMalzeme: String; // Seçilen malzeme adını tutacak BtnKontrol: TCLProButton; // Hareket fonksiyonları void HareketEttirBakirTel; { ImgBakirTel.Position.X = MyForm.clSenderMousePosX - 25; ImgBakirTel.Position.Y = MyForm.clSenderMousePosY - 25; SecilenMalzeme = 'BakirTel'; } void HareketEttirTahta; { ImgTahta.Position.X = MyForm.clSenderMousePosX - 25; ImgTahta.Position.Y = MyForm.clSenderMousePosY - 25; SecilenMalzeme = 'Tahta'; } void HareketEttirCivi; { ImgCivi.Position.X = MyForm.clSenderMousePosX - 25; ImgCivi.Position.Y = MyForm.clSenderMousePosY - 25; SecilenMalzeme = 'Civi'; } void HareketEttirLastik; { ImgLastik.Position.X = MyForm.clSenderMousePosX - 25; ImgLastik.Position.Y = MyForm.clSenderMousePosY - 25; SecilenMalzeme = 'Lastik'; } // Kontrol butonu fonksiyonu void KontrolEt; { if (SecilenMalzeme == '') { ShowMessage('Önce bir malzeme sürükleyip devreye koymalısın.'); } else if (SecilenMalzeme == 'BakirTel') { ShowMessage('Tebrikler! Devre tamamlandı ve ampul yandı! 💡'); } else if (SecilenMalzeme == 'Civi') { ShowMessage('Tebrikler! Devre tamamlandı ve ampul yandı! 💡'); } else if (SecilenMalzeme == 'Tahta') { ShowMessage('Devre tamamlanamadı, ampul yanmadı.'); } else if (SecilenMalzeme == 'Lastik') { ShowMessage ('Devre tamamlanamadı, ampul yanmadı.'); } } { MyForm = TclForm.Create(Self); SecilenMalzeme = ''; // Başlangıçta boş DevrePanel = MyForm.AddNewProPanel(MyForm, 'DevrePanel'); DevrePanel.Align = alClient; DevrePanel.clProSettings.BackgroundColor = nil; DevrePanel.SetclProSettings(DevrePanel.clProSettings); // Devre görseli DevreGorsel = MyForm.AddNewImage(DevrePanel, 'DevreGorsel'); DevreGorsel.Align = alClient; MyForm.SetImage(DevreGorsel, 'https://resmim.net/cdn/2025/07/21/XXnvec.jpg'); // açık devre görseli ImgBakirTel = MyForm.AddNewImage(DevrePanel, 'ImgBakirTel'); ImgBakirTel.Align = alNone; ImgBakirTel.Width = 50; ImgBakirTel.Height = 50; ImgBakirTel.Position.X = 20; ImgBakirTel.Position.Y = 100; MyForm.SetImage(ImgBakirTel, 'https://resmim.net/cdn/2025/07/21/XXGRK2.png'); MyForm.AddNewEvent(ImgBakirTel, tbeOnMouseMove, 'HareketEttirBakirTel'); ImgTahta = MyForm.AddNewImage(DevrePanel, 'ImgTahta'); ImgTahta.Align = alNone; ImgTahta.Width = 50; ImgTahta.Height = 50; ImgTahta.Position.X = 20; ImgTahta.Position.Y = 200; MyForm.SetImage(ImgTahta, 'https://resmim.net/cdn/2025/07/21/XXGhWL.png'); MyForm.AddNewEvent(ImgTahta, tbeOnMouseMove, 'HareketEttirTahta'); ImgCivi = MyForm.AddNewImage(DevrePanel, 'ImgCivi'); ImgCivi.Align = alNone; ImgCivi.Width = 50; ImgCivi.Height = 50; ImgCivi.Position.X = 20; ImgCivi.Position.Y = 300; MyForm.SetImage(ImgCivi, 'https://resmim.net/cdn/2025/07/21/XXGpL7.png'); MyForm.AddNewEvent(ImgCivi, tbeOnMouseMove, 'HareketEttirCivi'); ImgLastik = MyForm.AddNewImage(DevrePanel, 'ImgLastik'); ImgLastik.Align = alNone; ImgLastik.Width = 50; ImgLastik.Height = 50; ImgLastik.Position.X = 20; ImgLastik.Position.Y = 400; MyForm.SetImage(ImgLastik, 'https://resmim.net/cdn/2025/07/21/XXaWwI.png'); MyForm.AddNewEvent(ImgLastik, tbeOnMouseMove, 'HareketEttirLastik'); // BtnKontrol = MyForm.AddNewProButton(MyForm, 'BtnKontrol', 'Kontrol Et'); BtnKontrol.Align = alBottom; BtnKontrol.Height = 50; BtnKontrol.clProSettings.FontSize = 18; BtnKontrol.SetclProSettings(BtnKontrol.clProSettings); MyForm.AddNewEvent(BtnKontrol, tbeOnClick, 'KontrolEt'); MyForm.Run; } |
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 455 |
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 Temmuz 2025 Saat 09:38 |
|
var MyForm: TclForm; DevrePanel: TCLProPanel; ImgBakirTel, DevreGorsel, ImgTahta, ImgCivi, ImgLastik: TCLImage; SecilenMalzeme: String; BtnKontrol: TCLProButton; SuruklenenMalzeme: TCLImage; void SuruklemeBaslatBakirTel; { SuruklenenMalzeme = ImgBakirTel; SecilenMalzeme = 'BakirTel'; } { SuruklenenMalzeme = ImgTahta; SecilenMalzeme = 'Tahta'; } { SuruklenenMalzeme = ImgCivi; SecilenMalzeme = 'Civi'; } void SuruklemeBaslatLastik; { SuruklenenMalzeme = ImgLastik; SecilenMalzeme = 'Lastik'; } void SuruklemeSirasinda; { if (SuruklenenMalzeme <> nil) { SuruklenenMalzeme.Position.X = MyForm.clSenderMousePosX - 25; SuruklenenMalzeme.Position.Y = MyForm.clSenderMousePosY - 25; } } void SuruklemeBitti; { SuruklenenMalzeme = nil; } void KontrolEt; var malzemeMerkezX, malzemeMerkezY: Integer; mesafe: Integer; devreMerkezX, devreMerkezY: Integer; { devreMerkezX = DevreGorsel.Position.X + (DevreGorsel.Width div 2); devreMerkezY = DevreGorsel.Position.Y + (DevreGorsel.Height div 2); if (SecilenMalzeme == '') { ShowMessage('Önce bir malzeme sürükleyip devreye koymalısın.'); exit; } if (SecilenMalzeme == 'BakirTel') { malzemeMerkezX = ImgBakirTel.Position.X + (ImgBakirTel.Width div 2); malzemeMerkezY = ImgBakirTel.Position.Y + (ImgBakirTel.Height div 2); } else if (SecilenMalzeme == 'Tahta') { malzemeMerkezX = ImgTahta.Position.X + (ImgTahta.Width div 2); malzemeMerkezY = ImgTahta.Position.Y + (ImgTahta.Height div 2); } else if (SecilenMalzeme == 'Civi') { malzemeMerkezX = ImgCivi.Position.X + (ImgCivi.Width div 2); malzemeMerkezY = ImgCivi.Position.Y + (ImgCivi.Height div 2); } else if (SecilenMalzeme == 'Lastik') { malzemeMerkezX = ImgLastik.Position.X + (ImgLastik.Width div 2); malzemeMerkezY = ImgLastik.Position.Y + (ImgLastik.Height div 2); } mesafe = Round(Sqrt(Power(devreMerkezX - malzemeMerkezX, 2) + Power(devreMerkezY - malzemeMerkezY, 2))); if (mesafe <= 100) { if ((SecilenMalzeme == 'BakirTel') || (SecilenMalzeme == 'Civi')) { ShowMessage('Tebrikler! Devre tamamlandı ve ampul yandı! 💡'); MyForm.SetImage(DevreGorsel, 'https://resmim.net/cdn/2025/07/21/XXnvec.jpg'); } else { ShowMessage('Devre tamamlanamadı, ampul yanmadı. İletken malzeme kullanmalısın.'); } } else { ShowMessage('Malzemeyi devre alanına daha yakın yerleştirmelisin.'); } } { MyForm = TclForm.Create(Self); SecilenMalzeme = ''; SuruklenenMalzeme = nil; DevrePanel = MyForm.AddNewProPanel(MyForm, 'DevrePanel'); DevrePanel.Align = alClient; DevrePanel.clProSettings.BackgroundColor = clAlphaColor.clWhite; DevrePanel.SetclProSettings(DevrePanel.clProSettings); DevreGorsel = MyForm.AddNewImage(DevrePanel, 'DevreGorsel'); DevreGorsel.Align = alNone; DevreGorsel.Width = 300; DevreGorsel.Height = 200; DevreGorsel.Position.X = 200; DevreGorsel.Position.Y = 150; MyForm.SetImage(DevreGorsel, 'https://resmim.net/cdn/2025/07/21/XXnvec.jpg'); ImgBakirTel = MyForm.AddNewImage(DevrePanel, 'ImgBakirTel'); ImgBakirTel.Align = alNone; ImgBakirTel.Width = 50; ImgBakirTel.Height = 50; ImgBakirTel.Position.X = 20; ImgBakirTel.Position.Y = 100; MyForm.SetImage(ImgBakirTel, 'https://resmim.net/cdn/2025/07/21/XXGRK2.png'); MyForm.AddNewEvent(ImgBakirTel, tbeOnMouseDown, 'SuruklemeBaslatBakirTel'); ImgTahta = MyForm.AddNewImage(DevrePanel, 'ImgTahta'); ImgTahta.Align = alNone; ImgTahta.Width = 50; ImgTahta.Height = 50; ImgTahta.Position.X = 20; ImgTahta.Position.Y = 200; MyForm.SetImage(ImgTahta, 'https://resmim.net/cdn/2025/07/21/XXGhWL.png'); MyForm.AddNewEvent(ImgTahta, tbeOnMouseDown, 'SuruklemeBaslatTahta'); ImgCivi = MyForm.AddNewImage(DevrePanel, 'ImgCivi'); ImgCivi.Align = alNone; ImgCivi.Width = 50; ImgCivi.Height = 50; ImgCivi.Position.X = 20; ImgCivi.Position.Y = 300; MyForm.SetImage(ImgCivi, 'https://resmim.net/cdn/2025/07/21/XXGpL7.png'); MyForm.AddNewEvent(ImgCivi, tbeOnMouseDown, 'SuruklemeBaslatCivi'); ImgLastik = MyForm.AddNewImage(DevrePanel, 'ImgLastik'); ImgLastik.Align = alNone; ImgLastik.Width = 50; ImgLastik.Height = 50; ImgLastik.Position.X = 20; ImgLastik.Position.Y = 400; MyForm.SetImage(ImgLastik, 'https://resmim.net/cdn/2025/07/21/XXaWwI.png'); MyForm.AddNewEvent(ImgLastik, tbeOnMouseDown, 'SuruklemeBaslatLastik'); MyForm.AddNewEvent(DevrePanel, tbeOnMouseMove, 'SuruklemeSirasinda'); MyForm.AddNewEvent(DevrePanel, tbeOnMouseUp, 'SuruklemeBitti'); BtnKontrol = MyForm.AddNewProButton(MyForm, 'BtnKontrol', 'Kontrol Et'); BtnKontrol.Align = alBottom; BtnKontrol.Height = 50; BtnKontrol.clProSettings.FontSize = 18; BtnKontrol.SetclProSettings(BtnKontrol.clProSettings); MyForm.AddNewEvent(BtnKontrol, tbeOnClick, 'KontrolEt'); MyForm.Run; }
Merhaba Raziye Bu şekilde dener misin |
|
![]() |
|
Raziye Nur
Yeni Üye
Kayıt Tarihi: 07 Temmuz 2025 Durum: Aktif Değil Puanlar: 17 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Raziye Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 22 Temmuz 2025 Saat 09:52 |
|
Merhaba hocam şimdi de görsel sağa kaydı mobil üzerinde yaptığım için gözükmüyor
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 455 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(1)
Alıntı Cevapla
Gönderim Zamanı: 25 Temmuz 2025 Saat 11:53 |
|
Görselin konumunu position ile ayarlayarak ve sürüklemeyi panel de dener misin?
|
|
![]() |
|
Raziye Nur
Yeni Üye
Kayıt Tarihi: 07 Temmuz 2025 Durum: Aktif Değil Puanlar: 17 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Raziye Nur
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 25 Temmuz 2025 Saat 11:57 |
|
Oldu hocam teşekkür ederim.
|
|
![]() |
|
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 |