Pencarian di CheckListBox1 Dengan Bantuan Database

Saya menggunakan native komponen yang bernama TCheckListBox. Komponen ini berfungsi seperti TListBox hanya saja di samping nya terdapat CheckBox sebagai fasilitas untuk memilih.
Pengisian data kedalam TCheckListBox nya sendiri berasal dari database MySQL.

Saya mengalami kendala saat harus melakukan pencarian dari isi TCheckListBox tersebut. Setelah mencari akhir nya menemukan perintah seperti ini :


TListBoxSearchForm.Edit1Change(Sender: TObject) ;
 const
   indexStart = -1;
 var
   search : array[0..128] of Char;
 begin
   StrPCopy(search, Edit1.Text) ;
   ListBox1.ItemIndex := ListBox1.Perform(LB_SELECTSTRING, indexStart, LongInt(@search)) 
end;

Letak permasalahan nya adalah perintah di atas dipergunakan pada Delphi sedangkan aplikasi yang sedang saya buat di Lazarus dan saat dijalankan error nya ternyata tidak ada LB_SELECTSTRING.


Akhir nya setelah berpikir mundur kebelakang baru tersadar ternyata karena menggunakan database seharus nya pencarian lebih mudah maka saya pergunakan seperti berikut :
procedure Tfrminputobat.Edit15Change(Sender: TObject);
var
  ZQuery11 : TZQuery;
  loopi : integer;
begin
  ZQuery11 := TZQuery.Create(self);
  ZQuery11.Connection := DataModule1.ZConnection1;
  strSql := 'SELECT namafield FROM namatable WHERE namafield LIKE :namapbf ORDER BY nama_m_pbf ASC LIMIT 1';
  ClearSql(ZQuery11,strSql);
  ZQuery11.ParamByName('namapbf').AsString := '%'+TRIM(Edit15.Text)+'%';
  ZQuery11.Open;
  loopi := 0;
  while loopi<= ChecklistBox1.Items.Count-1 do
  begin
    if listPbf[loopi]=ZQuery11.Fields[0].AsString then
    begin
      CheckListBox1.Selected[loopi] := True;
      loopi := CheckListBox1.Items.Count+2;
    end;
    inc(loopi);
  end;
  ZQuery11.Destroy; 

Sebelumnya saya sudah memasukan terlebih dahulu id_table tersebut ke TStringList (atau bisa juga ke array) dan menurut hemat saya perintah ini seharus nya dapat berjalan dengan lancar baik di Delphi maupun Lazarus.

Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment