You are on page 1of 2

Bermain-main dengan Combobox Delphi Misalkan ada sebuah kasus, dimana kita memiliki sebuah form yang didalam

nya terdapat combobox. Ada beberapa operasi yang mungkin akan kita lakukan terhadap combobox ini:

Menambah pasangan data (id, value) ke combobox Mengambil salah satu data dari combobox untuk nantinya disimpan ke database Mengeset combobox dengan suatu value tertentu. Oke, yang pertama menambah pasangan data (id, value) ke combobox. Sebelumnya, saya sudah membuat sebuah TComboBox di mode design dengan nama kelompokComboBox dan juga mendeklarasikan suatu tipe baru beserta konstruktor nya.
private { Private declarations } public { Public declarations } end; type TString = class(TObject) private fStr: String; public constructor Create(const AStr: String) ; property Str: String read FStr write FStr; end; implementation uses KelolaUserDataModuleF; {$R *.dfm} constructor TString.Create(const AStr: String) ; begin inherited Create; FStr := AStr; end;

Ambil pasangan data. Untuk kasus ini, saya mengambil pasangan data dari database mySql

Query.SQL.Text:='select kelompokid,deskripsi from kelompok'; Query.Open; resultCount := Query.RecordCount; if(resultCount > 0) then

begin kelompokComboBox.Clear; Query.First(); for rowIndex:=1 to resultCount do begin kelompokComboBox.Items.AddObject(Query.FieldByName('deskripsi').AsString, TString.Create(Query.FieldByName('kelompokid').AsString)); //pasangan data combobox harus dalam bentuk(string,object) Query.Next(); end; kelompokComboBox.ItemIndex := 0; end;

Berikutnya adalah mengambil selected data dari combobox untuk nantinya disimpan ke database.
idString:=TString(kelompokComboBox.Items.Objects[kelompokComboBox.ItemIndex ]).Str;

Nilai idString inilah yang akan kta masukkan ke dalam parameter pada query sql kita. Kemudian yang terakhir, cara mengeset combobox dengan suatu value tertentu. Kita hanya cukup melakukan assignment value terhadap property Text dari combobox. Dalam kasus ini, data saya ambil dari database.
kelompokComboBox.Text:=Query.FieldByName('deskripsi').Text;

Dalam kasus tertentu, misal kelompokComboBox ada di frame lain seperti detailFrame yang mana isi combobox selalu diperbaharui pada fungsi CMShowingChanged di detailFrame, kita perlu meng-assign nilai ke variabel temporal. Hal ini diperlukan karena pada fungsi CMShowingChanged, data module mungkin dipakai untuk query lain. Baru setelah kita memunculkan detailFrame, nilai combobox kita set.

deskripsi:=Query.FieldByName('deskripsi').Text; detailFrame.Visible:=True; detailFrame.kelompokComboBox.Text := deskripsi;

Oke, kami tunggu respon, koreksi serta masukannya. Enjoy...

You might also like