Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Görsellerin Sürüklenmesi
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

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 Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Raziye Nur Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Temmuz 2025
Durum: Aktif Değil
Puanlar: 16
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Raziye Nur Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Görsellerin Sürüklenmesi
    Gönderim Zamanı: Dün 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;
}
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 111
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 11 Saat 10 Dakika Önce 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 
Yukarı Dön
Raziye Nur Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 07 Temmuz 2025
Durum: Aktif Değil
Puanlar: 16
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Raziye Nur Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 10 Saat 56 Dakika Önce Saat 09:52
Merhaba hocam şimdi de görsel sağa kaydı mobil üzerinde yaptığım için gözükmüyor
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,125 Saniyede Yüklendi.