Sayfayı Yazdır | Pencereyi Kapat

button hatası

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=1117
Tarih: 23 Temmuz 2025 Saat 01:33
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: button hatası
Mesajı Yazan: dilarayaprak
Konu: button hatası
Mesaj Tarihi: 22 Temmuz 2025 Saat 12:15
sil butonu, hatırladım ve hatırlamadım butonu tanımladım ama her seferinde hatırlamadım butonunun mesajını alıyorum 

var
  homeForm: TclForm;
  vertScrollBox: TclVertScrollBox;
  kartPanel, btnPanel: TclProPanel;
  lblWord: TclProLabel;
  btnSil, btnHatirladim, btnHatirlamadim: TclProButton;
  id, currentId: String;



void HatirladimTiklandi {
  ShowMessage('Harika, hatırladın!');
}

void HatirlamadimTiklandi {
  ShowMessage('Tamam, tekrar çalış!');
}

void SilButonuTiklandi {
  id = Clomosy.GlobalVariableString;
  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM kartlar WHERE id = ' + id;
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  ShowMessage('Kelime silindi.');
  Clomosy.RunUnit('Homebtn');

{
  homeForm = TclForm.Create(Self);
  homeForm.clSetCaption('Kayıtlı Kelimeler');
  homeForm.SetFormBGImage(' https://i.imgur.com/fPwWs0H.jpeg" rel="nofollow - https://i.imgur.com/fPwWs0H.jpeg ');

  vertScrollBox = homeForm.AddNewVertScrollBox(homeForm, '');
  vertScrollBox.Align = alClient;

  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT id, english, turkish FROM kartlar';
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  while (not Clomosy.DBSQLiteQuery.Eof) {
    currentId = Clomosy.DBSQLiteQuery.FieldByName('id').AsString;

    
    kartPanel = homeForm.AddNewProPanel(vertScrollBox, '');
    kartPanel.Align = alTop;
    kartPanel.Height = 120;
    kartPanel.Margins.Bottom = 10;
    kartPanel.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#e6e6e6');
    kartPanel.ClProSettings.RoundHeight = 10;
    kartPanel.ClProSettings.RoundWidth = 10;
    kartPanel.SetclProSettings(kartPanel.ClProSettings);


    lblWord = homeForm.AddNewProLabel(kartPanel, '', '');
    lblWord.Align = alTop;
    lblWord.Caption =
      'EN: ' + Clomosy.DBSQLiteQuery.FieldByName('english').AsString +
      ' | TR: ' + Clomosy.DBSQLiteQuery.FieldByName('turkish').AsString;
    lblWord.ClProSettings.FontSize = 18;
    lblWord.ClProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
    lblWord.Margins.Top = 5;
    lblWord.Margins.Left = 5;
    lblWord.SetclProSettings(lblWord.ClProSettings);

    
    btnPanel = homeForm.AddNewProPanel(kartPanel, '');
    btnPanel.Align = alBottom;
    btnPanel.Height = 40;

    
btnSil = homeForm.AddNewProButton(btnPanel, '', 'Sil');
btnSil.Align = alLeft;
btnSil.Width = 80;
btnSil.Margins.Left = 5;
btnSil.Margins.Right = 5;
btnSil.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f4bcbc');
btnSil.SetclProSettings(btnSil.ClProSettings);
btnSil.Hint = currentId;
Clomosy.GlobalVariableString = btnSil.Hint;
homeForm.AddNewEvent(btnSil, tbeOnClick, 'SilButonuTiklandi');


btnHatirladim = homeForm.AddNewProButton(btnPanel, '', 'Hatırladım');
btnHatirladim.Align = alClient;
btnHatirladim.Margins.Left = 5;
btnHatirladim.Margins.Right = 5;
btnHatirladim.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#b6e3b6');
btnHatirladim.SetclProSettings(btnHatirladim.ClProSettings);
homeForm.AddNewEvent(btnHatirladim, tbeOnClick, 'HatirladimTiklandi');


btnHatirlamadim = homeForm.AddNewProButton(btnPanel, '', 'Hatırlamadım');
btnHatirlamadim.Align = alRight;
btnHatirlamadim.Width = 100;
btnHatirlamadim.Margins.Left = 5;
btnHatirlamadim.Margins.Right = 5;
btnHatirlamadim.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f7d58c');
btnHatirlamadim.SetclProSettings(btnHatirlamadim.ClProSettings);
homeForm.AddNewEvent(btnHatirlamadim, tbeOnClick, 'HatirlamadimTiklandi');



Clomosy.DBSQLiteQuery.Next;
  }

 homeForm.Run;
}




Cevaplar:
Mesajı Yazan: Sudesigirci
Mesaj Tarihi: 22 Temmuz 2025 Saat 14:03
Merhaba Hatice ,
kodunu inceledim hatanın tüm butonlara ayn globalvariablestring atadığından kaynaklı olduğunu düşünüyorum sorunu çözmek için her butonun ayrı ıd sini aldım 
var
  homeForm: TclForm;
  vertScrollBox: TclVertScrollBox;
  kartPanel, btnPanel: TclProPanel;
  lblWord: TclProLabel;
  btnSil, btnHatirladim, btnHatirlamadim: TclProButton;
  id, currentId: String;
  clickedBtn: TClProButton;

void SilButonuTiklandi {
  clickedBtn = TClProButton(homeForm.ClSender);
  id = clickedBtn.Hint;

  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM kartlar WHERE id = ' + id;
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  ShowMessage('Kelime silindi.');
  Clomosy.RunUnit('Homebtn');
}

void HatirladimTiklandi {
  clickedBtn = TClProButton(homeForm.ClSender);
  ShowMessage('Harika, hatırladın! ID: ' + clickedBtn.Hint);
}

void HatirlamadimTiklandi {
  clickedBtn = TClProButton(homeForm.ClSender);
  ShowMessage('Tamam, tekrar çalış! ID: ' + clickedBtn.Hint);
}

{
  homeForm = TclForm.Create(Self);
  homeForm.clSetCaption('Kayıtlı Kelimeler');
  homeForm.SetFormBGImage(' https://i.imgur.com/fPwWs0H.jpeg" rel="nofollow - https://i.imgur.com/fPwWs0H.jpeg ');

  vertScrollBox = homeForm.AddNewVertScrollBox(homeForm, '');
  vertScrollBox.Align = alClient;

  Clomosy.DBSQLiteQuery.Close;
  Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT id, english, turkish FROM kartlar';
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  while (not Clomosy.DBSQLiteQuery.Eof) {
    currentId = Clomosy.DBSQLiteQuery.FieldByName('id').AsString;

    kartPanel = homeForm.AddNewProPanel(vertScrollBox, '');
    kartPanel.Align = alTop;
    kartPanel.Height = 120;
    kartPanel.Margins.Bottom = 10;
    kartPanel.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#e6e6e6');
    kartPanel.ClProSettings.RoundHeight = 10;
    kartPanel.ClProSettings.RoundWidth = 10;
    kartPanel.SetclProSettings(kartPanel.ClProSettings);

    lblWord = homeForm.AddNewProLabel(kartPanel, '', '');
    lblWord.Align = alTop;
    lblWord.Caption =
      'EN: ' + Clomosy.DBSQLiteQuery.FieldByName('english').AsString +
      ' | TR: ' + Clomosy.DBSQLiteQuery.FieldByName('turkish').AsString;
    lblWord.ClProSettings.FontSize = 18;
    lblWord.ClProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
    lblWord.Margins.Top = 5;
    lblWord.Margins.Left = 5;
    lblWord.SetclProSettings(lblWord.ClProSettings);

    btnPanel = homeForm.AddNewProPanel(kartPanel, '');
    btnPanel.Align = alBottom;
    btnPanel.Height = 40;

    // Sil Butonu
    btnSil = homeForm.AddNewProButton(btnPanel, '', 'Sil');
    btnSil.Align = alLeft;
    btnSil.Width = 80;
    btnSil.Margins.Left = 5;
    btnSil.Margins.Right = 5;
    btnSil.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f4bcbc');
    btnSil.SetclProSettings(btnSil.ClProSettings);
    btnSil.Hint = currentId;
    homeForm.AddNewEvent(btnSil, tbeOnClick, 'SilButonuTiklandi');

    // Hatırladım
    btnHatirladim = homeForm.AddNewProButton(btnPanel, '', 'Hatırladım');
    btnHatirladim.Align = alClient;
    btnHatirladim.Margins.Left = 5;
    btnHatirladim.Margins.Right = 5;
    btnHatirladim.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#b6e3b6');
    btnHatirladim.SetclProSettings(btnHatirladim.ClProSettings);
    btnHatirladim.Hint = currentId;
    homeForm.AddNewEvent(btnHatirladim, tbeOnClick, 'HatirladimTiklandi');

    // Hatırlamadım
    btnHatirlamadim = homeForm.AddNewProButton(btnPanel, '', 'Hatırlamadım');
    btnHatirlamadim.Align = alRight;
    btnHatirlamadim.Width = 100;
    btnHatirlamadim.Margins.Left = 5;
    btnHatirlamadim.Margins.Right = 5;
    btnHatirlamadim.ClProSettings.BackGroundColor = clAlphaColor.clHexToColor('#f7d58c');
    btnHatirlamadim.SetclProSettings(btnHatirlamadim.ClProSettings);
    btnHatirlamadim.Hint = currentId;
    homeForm.AddNewEvent(btnHatirlamadim, tbeOnClick, 'HatirlamadimTiklandi');

    Clomosy.DBSQLiteQuery.Next;
  }

  homeForm.Run;
}
bu şekilde kodunu tekrar deneyebilir misin



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