Sayfayı Yazdır | Pencereyi Kapat

Sil butonuna basınca en son satırı siliyior

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=1186
Tarih: 04 Eylül 2025 Saat 07:11
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Sil butonuna basınca en son satırı siliyior
Mesajı Yazan: kerem_3
Konu: Sil butonuna basınca en son satırı siliyior
Mesaj Tarihi: 19 Ağustos 2025 Saat 14:18
var
  MainForm: TclForm;
  testpnl: TclProPanel;
  VerticalScrollBox: TclVertScrollBox;
  BtnAdd,BtnDelete,BtnSelect: TClProButton;
  query: TclSQLiteQuery;
  TitleLbl: TClProLabel;
  nameLbl, plateLbl: TClProLabel;
  i: Integer;
  adSoyad,plaka:String;
  VeriPanel: TclProPanel;
  SelectedAdSoyad, SelectedPlaka: String; // Dinamik olarak seçilen müşteri



// Seçme işlemi
void SelectCustomer;
{
  ShowMessage('Seçilen: ' + adSoyad + ' - ' + plaka);
  // Burada başka bir işleme yönlendirebilirsin
}

// Buton için event prosedürleri
void OnSelectButtonClicked;
{
  adSoyad = SelectedAdSoyad;
  plaka = SelectedPlaka;
  SelectCustomer();
}



void DeleteBtnClicked;
var
  plaka: String;
{
  // BtnDelete.clTagStr zaten satırın plakasını içeriyor
  plaka = BtnDelete.clTagStr;

  Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'otoyikama123.db3', '');
  Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM MusteriListesi WHERE Plaka = "' + plaka + '"';
  Clomosy.DBSQLiteQuery.OpenOrExecute;

  ShowMessage('Müşteri silindi.');
  MainForm.Close;
  Clomosy.RunUnit('uMustersecme');
}



void GoToAddCustomer;
{
  Clomosy.RunUnit('uMusteriEkleme');
}

void LoadCustomers;
{
  try
    Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'otoyikama123.db3', '');
    query = Clomosy.DBSQLiteQueryWith('SELECT AdSoyad, Plaka FROM MusteriListesi');
    query.OpenOrExecute;
    query.First;

    i = 0;
    while (not query.EOF) 
    {
        i = i + 1;
        
        VeriPanel = MainForm.AddNewProPanel(VerticalScrollBox, 'VeriPanel_' + IntToStr(i));
        VeriPanel.Align = alTop;
        VeriPanel.Width = 370;
        VeriPanel.Height =100;
        VeriPanel.SetClproSettings(VeriPanel.clProSettings);
        
        nameLbl = MainForm.AddNewProLabel(VeriPanel, 'nameLbl_' + IntToStr(i), query.FieldByName('AdSoyad').AsString);
        nameLbl.Margins.Right = 210;
        nameLbl.Margins.Left = 20;
        nameLbl.Margins.Top = 5;
        nameLbl.clProSettings.TextSettings.Font.Size = 16;
        nameLbl.clProSettings.TextSettings.Font.Style = [fsBold];
        nameLbl.SetclProSettings(nameLbl.clProSettings);
        
        plateLbl = MainForm.AddNewProLabel(VeriPanel, 'plateLbl_' + IntToStr(i), query.FieldByName('Plaka').AsString);
        plateLbl.Margins.Right = 210;
        plateLbl.Margins.Left = 20 ;
        plateLbl.Margins.Top = 35;
        plateLbl.clProSettings.TextSettings.Font.Size = 14;
        plateLbl.SetclProSettings(plateLbl.clProSettings);

        // Dinamik değerleri ata
        SelectedAdSoyad = query.FieldByName('AdSoyad').AsString;
        SelectedPlaka = query.FieldByName('Plaka').AsString;

        // Seç butonu
        BtnSelect = MainForm.AddNewProButton(VeriPanel, 'BtnSelect_' + IntToStr(i), 'Seç');
        BtnSelect.Width = 50;
        BtnSelect.Height = 20;
        BtnSelect.Margins.Top = 15;
        BtnSelect.Margins.Right = 100;
        BtnSelect.Margins.Left = 150;
        BtnSelect.ClproSettings.BorderWidth = 3;
        BtnSelect.ClproSettings.BorderColor = clAlphaColor.clHexToColor('#0394fc');
        BtnSelect.SetClproSettings(BtnSelect.ClproSettings);
        MainForm.AddNewEvent(BtnSelect, tbeOnClick, 'OnSelectButtonClicked');

        // Sil butonu
       // Sil butonu
       BtnDelete = MainForm.AddNewProButton(VeriPanel, 'BtnDelete_' + IntToStr(i), 'Sil');
       BtnDelete.clTagStr = query.FieldByName('Plaka').AsString; // bu satırın plakası
       BtnDelete.Width = 50; 
       BtnDelete.Height = 20;
       BtnDelete.Margins.Top = 15;
       BtnDelete.Margins.Right = 5;
       BtnDelete.Margins.Left = 250;
       BtnDelete.ClproSettings.BorderWidth = 3;
       BtnDelete.ClproSettings.BorderColor = clAlphaColor.clHexToColor('#0394fc');
       BtnDelete.SetClproSettings(BtnDelete.ClproSettings);
       MainForm.AddNewEvent(BtnDelete, tbeOnClick, 'DeleteBtnClicked'); // TEK fonksiyon
 

        query.Next;
    }

    query.Close;
  except
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
}

{
  MainForm = TCLForm.Create(Self);
  MainForm.SetFormBGImage(' https://resmim.net/cdn/2025/08/12/XOro6W.png" rel="nofollow - https://resmim.net/cdn/2025/08/12/XOro6W.png ');

  testpnl = MainForm.AddNewProPanel(MainForm, 'testpnl');
  testpnl.Align = alCenter;
  testpnl.Width = 380;
  testpnl.Height = 700;
  testpnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#0394fc');
  testpnl.clProSettings.BorderWidth = 2;
  testpnl.clProSettings.IsRound = True;
  testpnl.SetclProSettings(testpnl.clProSettings);

  TitleLbl = MainForm.AddNewProLabel(testpnl, 'TitleLbl', 'Müşteri Listesi');
  TitleLbl.Align = alTop;
  TitleLbl.Margins.Left = 140;
  TitleLbl.Margins.Right =50;
  TitleLbl.clProSettings.TextSettings.Font.Size = 20;
  TitleLbl.clProSettings.TextSettings.Font.Style = [fsBold];
  TitleLbl.Margins.Top = 10;
  TitleLbl.Margins.Bottom = 10;
  TitleLbl.SetclProSettings(TitleLbl.clProSettings);

  VerticalScrollBox = MainForm.AddNewVertScrollBox(testpnl, 'VerticalScrollBox');
  VerticalScrollBox.Align = alClient;

  BtnAdd = MainForm.AddNewProButton(VerticalScrollBox, 'BtnAdd', 'Müşteri Ekle');
  BtnAdd.Margins.Bottom = 10;
  BtnAdd.Margins.Top = 350;
  BtnAdd.Height = 50;
  BtnAdd.Width = 100;
  BtnAdd.clProSettings.BorderWidth = 3;
  BtnAdd.clProSettings.IsRound = True;
  BtnAdd.clProSettings.BorderColor = clAlphaColor.clHexToColor('#0394fc');
  BtnAdd.SetclProSettings(BtnAdd.clProSettings);
  MainForm.AddNewEvent(BtnAdd, tbeOnClick, 'GoToAddCustomer');

  LoadCustomers;

  MainForm.Run;
}
Kodum bu Sil butonuna tıklayınca o satırı silmesi için yapmaya çalıştım ama en son satırı siliyor



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 19 Ağustos 2025 Saat 22:57
Merhaba Kerem, 
Aşağıda bıraktığım prosedür inceleyip koduna entegre edebilir misin? 
// Liste öğesine tıklandığında
void onItemClicked
{
  UrunAdiEdt.Text = clGetStringAfter(PListView.clSelectedItemData(clText4), ': ');
  BarkodEdt.Text = clGetStringAfter(PListView.clSelectedItemData(clText), ': ');
  KategoriEdt.Text = clGetStringAfter(PListView.clSelectedItemData(clText1), ': ');
  FiyatEdt.Text = clGetStringAfter(PListView.clSelectedItemData(clText2), ': ');
  StokMiktariEdt.Text = clGetStringAfter(PListView.clSelectedItemData(clText3), ': ');
}

// Veri silme
void DataDelete
{
  try
  {
    if (BarkodEdt.Text <> '')
    {
      Clomosy.DBSQLiteQuery.SQL.Text = 'Delete From StokTakip where Barkod = ' + QuotedStr(BarkodEdt.Text);
      Clomosy.DBSQLiteQuery.OpenOrExecute;
      GetData;
      ClearEdtText;
    }
    else
    {
      ShowMessage('Silinecek ürün seçilmedi!');
    }
  }
  except
  
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
}




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