Skip to main content

Penggunaan ListBox Lazarus Free Pascal (Belajar Lazarus #11)

Seri Belajar Lazarus yang ke-11 kali ini akan membahas Penggunaan komponen ListBox pada Lazarus Free Pascal. Komponen ListBox menampilkan sekumpulan pilihan dalam daftar yang dapat menggulung. Item-item dalam ListBox dapat dipilih, ditambah dan dihapus.

Pada tutorial kali ini kita akan mempraktekkan penggunaan MessageDlg dan modal resultnya, serta penggunaan perulangan For. Silahkan dipelajari dulu jika belum memahaminya.Untuk praktek silahkan buat aplikasi baru dan beri nama listbox.lpi

LANGKAH DESAIN VISUAL


Form1
Name: FListbox
Caption: Depot Enak Sekali

Label1
Caption: Daftar Menu

Label2
Caption: Menu yang dipilih

ListBox1
Name: LBDaftarmenu
MultiSelect: True
Items:
  Nasi Putih
  Nasi Rawon
  Nasi Soto
  Tempe Goreng
  Ikan Goreng
  Ikan Pepes
  Sate
  Ayam Goreng
  Ayam Panggang
  Es Jeruk
  Es Teh
  Es Degan
  Teh Hangat
  Susu Soda

ListBox2
Name: LBMenupilih
MultiSelect: True

Button1
Name: BPilih
Caption: Pilih

Button2
Name: BHapus
Caption: Hapus

Sehingga tampilannya seperti gambar dibawah ini:
Penggunaan ListBox Lazarus


LANGKAH NON VISUAL / CODING

BPilih
Event OnClick
procedure TFListbox.BPilihClick(Sender: TObject);
var
  i: integer;
begin
  { Memilih item dari LBDaftarmenu yang dipilih ke LBMenupilih }
  for i:= 0 to (LBDaftarmenu.Items.Count-1) do
    if LBDaftarmenu.Selected[i] then
      LBMenupilih.Items.Add(LBDaftarmenu.Items.Strings[i]);
end;
;

BHapus
Event OnClick
procedure TFListbox.BHapusClick(Sender: TObject);
var
  i: integer;
begin
  // Konfirmasi penghapusan data di LBMenupilih
  if messagedlg('Konfirmasi','Yakin ingin menghapus?',mtConfirmation,mbokcancel,0) = mrOk then
    (* Menghapus dari item yang dipilih *)
      for i:= (LBMenupilih.Items.Count-1) downto 0 do
        if LBMenupilih.Selected[i] then
          LBMenupilih.Items.Delete(i);
end;


PENJELASAN PROGRAM APLIKASI

Properti MultiSelect dipakai untuk menentukan apakah user dapat memilih beberapa item sekaligus. JIka bernila False maka user hanya dapat memilih 1 item saja. Jika bernilai True maka user dapat memilih beberapa item sekaligus. Untuk memilih item-item yang berurutan tekan tombol Shift dan klik tombol kiri mouse. Untuk memilih item-item yang tidak berurutan, tekan tombol Ctrl dan klik tombol kiri mouse.

Jangan lupa waktu mengisikan pilihan pada komponen LBDaftarMenu pada properti Items isikan tiap 1 baris 1 item dengan menekan enter. Anda dapat memilih item-item pada DaftarMenu, jika anda klik tombol Pilih, item-item yang dipilih akan ditampilkan di Listbox Menu yang dipilih.

Jika anda klik tombol Hapus, item-item akan dihapus dari Daftar Menu, sebelum diproses, ditampilkan kotak dialog untuk konfirmasi penghapusan. Kode yang telah anda tuliskan adalah:
if messagedlg( 'Konfirmasi', 'Yakin ingin menghapus?', mtConfirmation, mbokcancel, 0) = mrOk then
Yang akan menghasilkan kotak dialog seperti gambar di bawah ini, jika dijawab OK maka proses penghapusan akan dilakukan, jika dijawab Cancel maka penghapusan dibatalkan.

Konfirmasi Penghapusan Item ListBox


Kode Lengkap unit lisbox Penggunaan ListBox Lazarus Free Pascal (Belajar Lazarus #11) sebagai berikut:
unit ulistbox;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TFListbox }

  TFListbox = class(TForm)
    BPilih: TButton;
    BHapus: TButton;
    Label1: TLabel;
    Label2: TLabel;
    LBDaftarmenu: TListBox;
    LBMenupilih: TListBox;
    procedure BHapusClick(Sender: TObject);
    procedure BPilihClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  FListbox: TFListbox;

implementation

{$R *.lfm}

{ TFListbox }

procedure TFListbox.BPilihClick(Sender: TObject);
var
  i: integer;
begin
  { Memilih item dari LBDaftarmenu yang dipilih ke LBMenupilih }
  for i:= 0 to (LBDaftarmenu.Items.Count-1) do
    if LBDaftarmenu.Selected[i] then
      LBMenupilih.Items.Add(LBDaftarmenu.Items.Strings[i]);
end;

procedure TFListbox.BHapusClick(Sender: TObject);
var
  i: integer;
begin
  // Konfirmasi penghapusan data di LBMenupilih
  if messagedlg( 'Konfirmasi', 'Yakin ingin menghapus?', mtConfirmation, mbokcancel, 0 ) = mrOk then
    (* Menghapus dari item yang dipilih *)
    for i:= (LBMenupilih.Items.Count-1) downto 0 do
      if LBMenupilih.Selected[i] then
        LBMenupilih.Items.Delete(i);
end;

end.


Demikian Tutorial Penggunaan ListBox Lazarus Free Pascal (Belajar Lazarus #11). Terima kasih.

Comments

Popular posts from this blog

Inilah Kelebihan dan Kekurangan SQLite

  Artikel ini akan membahas tentang, tipe data yang didukung SQLite,  kelebihan dari SQLite, kekurangan SQLite, kapan sebaiknya ketika menggunakan SQLite dan kapan sebaiknya kita tidak menggunakan SQLite. Merujuk dari id.wikipedia.org disebutkan bahwa SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp . SQLite adalah perpustakaan menakjubkan yang disematkan di dalam aplikasi yang menggunakan. Sebagai database mandiri, berbasis file, SQLite menawarkan serangkaian menakjubkan alat untuk menangani segala macam data dengan jauh lebih sedikit kendala dan kemudahan dibandingkan dengan host, proses berbasis (server) database relasional. Ketika sebuah aplikasi menggunakan SQLite, integrasi bekerja dengan panggilan fungsional dan langsung dibuat untuk file memegang data (yaitu ...

Penggunaan Komponen RadioGroup Lazarus Free Pascal (Belajar Lazarus #10)

Pada Tutorial Penggunaan Komponen RadioGroup Lazarus Free Pascal kali ini bertujuan untuk memahami cara penggunaan RadioGroup serta penerapan pernyataan / statement CASE. Untuk itu maka silahkan buka kembali proyek aplikasi kasiratk yang telah anda buat sebelumnya. Untuk mengingat kembali jika lupa silahkan buka kembali tutorial RadioGroup dan Validasi Data . KOMPONEN RADIOGROUP RadioGroup adalah gabungan dari komponen RadioButton dan komponen GroupBox, fungsinya sama dengan komponen RadioButton. Setelah program aplikasi kasiratk terbuka, ikuti langkah-langkah di bawah ini: LANGKAH-LANGKAH PENAMBAHAN KOMPONEN & PROPERTIES : Ubah aplikasi yang memakai RadioButton dengan RadioGroup, caranya dengan klik GroupBox, lalu tekan tombol Delete, maka ketiga komponen RadioButton didalamnya akan ikut terhapus. Tempatkan komponen RadioGroup di tempat GroupBox. Ubah Name menjadi RGBarang dan Caption-nya menjadi Nama Barang. Klik tombol [,,,] pada Properties Items milik komponen RGBar...

Aplikasi Demo Penggunaan Memo ComboBox ListBox dan CheckBox (Belajar Lazarus #14)

Mempelajari Listbox yang Owner-Draw Lazarus telah kita bahas pada artikel sebelumnya, sekarang mari kita buat Aplikasi Demo Penggunaan Memo ComboBox ListBox dan CheckBox . CheckBox memberi dua pilihan (bahkan tiga pilihan) kepada pemakai, properti yang berkaitan dengan pilihan pada CheckBox yaitu: Ubah property Checked menjadi True agar CheckBox dipilih secara default. Ubah AllowGrayed menjadi True agar CheckBox mempunyai 3 pilihan, yaitu checked , unchecked dan grayed . Property State menyatakan apakah CheckBox dalam keadaan checked ( cbChecked ), unchecked ( cbUnchecked ), atau grayed ( cbGrayed ). Memo dipakai untuk memasukkan data yang lebih dari satu barus. ListBox menampilkan daftar dan Anda dapat memilih item-itemnya: Property Items dibakai untuk mengisi pilihan-pilihan yang mungkin. ItemIndex menyatakan item yang dipilih.  MultiSelect menyatakan apakah dapat memilih lebih dari satu pilihan pada saat yang bersamaan. Sorted menyatakan apakah daftar terurut sec...