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.
0 comments:
Post a Comment