Beberapa properti yang sering digunakan dalam bekerja dengan komponen ListBox adalah seperti yang ditunjukkan pada tabel berikut.
Properti | Keterangan |
---|---|
Items | Digunakan sebagai penampung dari item-item yang ada. Kita dapat menambah maupun mengurangi item di dalamnya melalui properti ini. |
Sorted | Menentukan apakah item-item didalamnya akan diurutkan (berdasarkan abjad) atau tidak |
MultiSelect | Memperbolehkan user untuk dapat memilih lebih dari satu item |
Item-item yang terdapat pada komponen ini pada umumnya dimanipulasi dengan menggunakan method-method yang terdapat pada kelas TStrings. Mengapa demikian? Karena properti Items yang terdapat pada komponen ListBox bertipe TStrings. Berikut ini daftar beberapa method dari kelas TStrings yang banyak digunakan.
Method | Keterangan |
---|---|
Add | Menambah string pada bagian akhir daftar. |
AddStrings | Menambah sekumpulan string(beberapa baris) ke dalam daftar |
Append | Sama seperti Add |
Insert | Menambah sebuah string kedalam daftar pada indeks tertentu. Method ini memiliki dua buah parameter. Parameter pertama adalala indeks yang ditentukan dan parameter kedua adalah string yang akan dimasukkan. |
Clear | Mengosongkan atau menghapus semua string yang ada didalam daftar |
Delete | Menghapus sebuah string dari daftar berdasarkan indeks yang dilewatkan sebagai parameternya. |
IndexOf | Menentukan indeks dari string yang dilewatkan sebagai parameternya |
LoadFromFile | Mengisikan daftar menggunakan data-data yang tersimpan didalam file |
Dengan demikian, apabila kita ingin memasukkan sebuah item kedalam komponen ListBox, maka kita dapat menggunakan salah satu dari perintah-perintah berikut :
ListBox1.Items.Add('Cara Pertama');
ListBox1.Items.Append('Cara Kedua');
ListBox1.Items.Insert(0, 'Cara Ketiga');
ListBox1.Items.Append('Cara Kedua');
ListBox1.Items.Insert(0, 'Cara Ketiga');
Untuk menghapus sebuah item dari daftar yang terdapat dalam komponen ListBox, gunakan perintah berikut :
ListBox1.Items.Delete(0); //menghapus item pertama
ListBox1.Items.Delete(1); //menghapus item kedua
ListBox1.Items.Delete(1); //menghapus item kedua
Sedangkan untuk menghapus semua item, perintah yang diperlukan adalah seperti berikut :
ListBox1.Items.Clear;
Selain menggunakan method Clear, kita juga dapat menggunakan method Delete didalam sebuah struktur pengulangan, seperti yang ditunjukkan oleh kode berikut :
var
i:integer;
begin
for i:= ListBox1.Count-1 downto 0 do begin
ListBox1.Items.Delete(i);
end;
end;
i:integer;
begin
for i:= ListBox1.Count-1 downto 0 do begin
ListBox1.Items.Delete(i);
end;
end;
Ingat, Jangan gunakan pengulangan yang sifatnya menaik!. Pada kode diatas kita melakukan pengulangan yang sifatnya menurun(menggunakan for..downto..do) sehingga kode dapat berjalan dengan benar. Namun, apabila kita menggunakan for...to..do, maka akan timbul masalah. Perhatikan kembali contoh kode berikut ini.
var
i:integer;
begin
for i:= 0 to ListBox1.count-1 do begin
ListBox1.Items.Delete(i);
end;
end;
Secara kaidah penulisan sintaksnya, kode diatas jelas benar. Namun, secara algoritma, kode diatas salah.
Sebagai catatan bagi anda, method-method diatas berlaku juga untuk properti Items yang terdapat pada komponen RadioGroup, ComboBox, CheckListBox, dan sebagainya. maupun properti Lines yang terdapat pada komponen-komponen lain (misalnya: Memo).
Berikut ini contoh aplikasi yang akan menunjukkan penggunaan komponen ListBox. Ikuti langkah-langkah dibawah ini.
- Sediakan aplikasi baru. Simpan dengan nama unit uListBox.pas dan project dengan nama ListBox.dpr.
-Tempatkan dua komponen ListBox, dua komponen CheckBox, empat komponen Button, dan empat komponen SpeedButton. Set properti dari komponen-komponen tersebut dengan nilai-nilai yang terdapat pada tabel dibawah ini :
Nama Komponen | Properti | Nilai |
---|---|---|
Form1 | Caption | Demo ListBox |
ListBox1 | Items | Kylix C++ Builder Delphi Eclipse Visual Basic Power Builder |
Button1 | Caption | > |
Button2 | Caption | >> |
Button3 | Caption | < |
Button4 | Caption | << |
CheckBox1 CheckBox2 | Caption | Sorder |
SpeedButton1 SpeedButton3 | Glyph | (Gambar Up / Down) |
SpeedButton2 SpeedButton4 | Glyph | (Gambar Up / Down) |
-Deklarasikan prosedur baru pada bagian private dari kelas TForm1 dengan menggunakan kode berikut.
procedure Move(SourceLB, DestLB : TListBox; index: integer = -1; All: boolean=false);
-Implementasikan prosedur tersebut pada bagian implementation dari unit bersangkutan dengan menggunakan kode berikut.
procedure TForm1.Move(SourceLB, DestLB : TListBox; index: integer = -1; All: boolean=false);
var
i: integer;
begin
if All then begin
for i := 0 to SourceLB.Items.Count-1 do begin
DestLB.Items.Add(SourceLB.Items.Strings[i]);
end;
SourceLB.Items.Clear;
end else begin
if Index = -1 then begin
showmessage('Pilih Item');
exit;
end else begin
DestLB.Items.Add(SourceLB.Items.String[Index]);
SourceLB.Items.Delete[Index];
end;
end;
end;
var
i: integer;
begin
if All then begin
for i := 0 to SourceLB.Items.Count-1 do begin
DestLB.Items.Add(SourceLB.Items.Strings[i]);
end;
SourceLB.Items.Clear;
end else begin
if Index = -1 then begin
showmessage('Pilih Item');
exit;
end else begin
DestLB.Items.Add(SourceLB.Items.String[Index]);
SourceLB.Items.Delete[Index];
end;
end;
end;
-Deklarasikan kembali sebuah prosedur baru pada bagian private dari kelas TForm1 dengan menggunakan kode berikut.
procedure UpDown(LB: TListBox; Index:integer; up:boolean=false);
-Implementasikan Prosedur tersebut dengan kode berikut.
procedure TForm1.UpDown(LB: TListBox; Index: integer; Up:boolean=false);
begin
if up then begin
if Index = 0 then exit;
LB.Items.Exchange(Index, Index-1);
LB.ItemsIndex := Index-1;
end else begin
if Index = LB.Items.Count-1 then exit;
LB.Items.Exchange(Index, Index-1);
LB.ItemsIndex := Index-1;
end;
end;
-Isikan Kode berikut untuk even OnClick dari objek Button1.
procedure TForm1.Button1Click(Sender: TObject);
begin
Move(ListBox1,ListBox2, ListBox1.ItemIndex);
end;
-Isikan Kode berikut untuk even OnClick dari Objek Button2.
procedure TForm1.Button2Click(Sender: TObject);
begin
Move(ListBox1,ListBox2, -1, true);
end;
-Isikan Kode berikut untuk even OnClick dari Objek Button3.
procedure TForm1.Button3Click(Sender: TObject);
begin
Move(ListBox2,ListBox1, ListBox2.ItemIndex);
end;
-Isikan Kode berikut untuk even OnClick dari Objek Button4.
procedure TForm1.Button4Click(Sender: TObject);
begin
Move(ListBox2,ListBox1, -1, true);
end;
-Isikan Kode berikut untuk even OnClick dari Objek SpeedButton1.
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
UpDown(ListBox1,ListBox1.ItemIndex, True);
end;
-Isikan Kode berikut untuk even OnClick dari Objek SpeedButton2.
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
UpDown(ListBox1,ListBox1.ItemIndex);
end;
-Isikan Kode berikut untuk even OnClick dari Objek SpeedButton3.
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
UpDown(ListBox2,ListBox2.ItemIndex, True);
end;
-Isikan Kode berikut untuk even OnClick dari Objek SpeedButton4.
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
UpDown(ListBox2,ListBox2.ItemIndex);
end;
-Isikan kode berikut untuk event OnClick dari objeck CheckBox1.
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ListBox1.Sorted := CheckBox1.Checked;
end;
-Isikan kode berikut untuk event OnClick dari objeck CheckBox2.
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
ListBox2.Sorted := CheckBox2.Checked;
end;
-Simpan Kembali semua file dengan memilih menu File | Save All dan jalankan aplikasi.
0 comments :
Post a Comment
Click to see the code!
To insert emoticon you must added at least one space before the code.