Selamat siang agan-agan , siang yang sangat panas disini.Menusuk-nusuk kulit , menghujam jantung dan mencabik hati.Lebay !!Pada postingan kali ini saya akan membahas mengenai Simulasi Declare Component Secara Run Time di Delphi 7.Maksudnya !?Pernahkah agan ngebayangin gimana kalau kita membuat sebuah program GUI(Graphical User Interface) di Delphi 7 tanpa mendrag-drop component apapun !? Ya, kita melakukannya secara runtime dengan terlebih dahulu mendeklarasikan component yang akan digunakan pada file Unit.Sebenarnya , proses drag-drop component ke form merupakan proses pendeklarasian component itu sendiri.Namun di bungkus oleh IDE(Integrated Developement Environtment) yang dalam kasus ini Delphi 7 sehingga kita tidak perlu menuliskan code untuk pendeklarasian component.Bingung !?Bagusss !!haha.Mari kita contohkan dengan praktek.Seperti biasa gan.Silahkan buka borland Delphi 7 agan.Tambahkan 1 buah component TButton.1 TEdit dan 1 TListBox.Ketika aplikasi di jalankan , bila user menekan tombol button1 , maka text yang ada di edit1 akan di tambahkan ke ListBox1.Bila edit1 Kosong , maka akan muncul pesan kesalahan.Dengan menggunakan IDE , kita cukup mendrag-drop component tersebut kedalam form1.Susun component tersebut sesuai gambar berikut
lalu double-klik button1 dan ketikan kode berikut.
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if Edit1.Text<>'' then
- begin
- ListBox1.Items.Add(Edit1.Text);
- end
- else
- begin
- ShowMessage('Edit belum di isi');
- end;
- end;
Yuph , hanya dengan cara seperti itu program yang kita buat sudah selesai.Cepat , mudah dan hemat waktu.Bagaimana jika kita membuat program yang sama namun tanpa mendrag-drop component apapun kedalam form , mungkinkah !? Tentu saja , itulah inti dari postingan saya kali ini.Buat program baru.Pada unit1 klause private , ketikan kode berikut.
- private
- lbBox:TListBox; //inisialisasi TListBox dengan nama lbBox
- tombol:TButton; //Inisialisasi TButton dengan nama tombol
- edInput:TEdit; // inisialisasi TEdit dengan nama edInput
- procedure tombolClick(Sender:TObject); //inisialisai event OnClick pada tombol
- { Private declarations }
Pada klausa private tersebut , kita menginisialisasi component baru sesuai parent yang akan di tambahkan (TEdit , TListBox , TButton).Pada form1 event onShow , ketikan kode berikut.
- procedure TForm1.FormShow(Sender: TObject);
- begin
- Form1.Height:=213; //mengatur tinggi form1
- Form1.Width:=151; //mengatur lebar form1
- lbBox:=TListBox.Create(Self); //pendeklarasian component
- lbBox.Parent:=Self;
- lbBox.Top:=10;
- lbBox.Left:=10;
- tombol:=TButton.Create(Self);
- tombol.Parent:=Self;
- tombol.Top:=150;
- tombol.Left:=30;
- tombol.Caption:='Tambah';
- tombol.OnClick:=tombolClick; //menambahkan event onClick pada tombol
- edInput:=TEdit.Create(Self);
- edInput.Parent:=Self;
- edInput.Top:=120;
- edInput.Left:=10;
- end;
Pada saat program di jalankan , proses deklarasi component dimulai.Selanjutnya , kita akan mendeklarasikan event onClick pada tombol.ketikan kode berikut setelah kode sebelumnya.
- procedure TForm1.tombolClick(sender:TObject); //deklarasi tombol event ocClick
- begin
- if edInput.Text<>'' then
- begin
- lbBox.Items.Add(edInput.Text);
- end
- else
- begin
- ShowMessage('Edit harus di isi');
- end;
- end;
Lalu pada form1 event onClose , ketikan kode berikut.
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- lbBox.Free; //membebaskan component dari memori
- tombol.Free;
- edInput.Free;
- end;
Berikut kode lengkap dari program tersebut.
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- procedure FormShow(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- private
- lbBox:TListBox; //inisialisasi TListBox dengan nama lbBox
- tombol:TButton; //Inisialisasi TButton dengan nama tombol
- edInput:TEdit; // inisialisasi TEdit dengan nama edInput
- procedure tombolClick(Sender:TObject); //inisialisai event OnClick pada tombol
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.FormShow(Sender: TObject);
- begin
- Form1.Height:=213; //mengatur tinggi form1
- Form1.Width:=151; //mengatur lebar form1
- lbBox:=TListBox.Create(Self); //pendeklarasian component
- lbBox.Parent:=Self;
- lbBox.Top:=10;
- lbBox.Left:=10;
- tombol:=TButton.Create(Self);
- tombol.Parent:=Self;
- tombol.Top:=150;
- tombol.Left:=30;
- tombol.Caption:='Tambah';
- tombol.OnClick:=tombolClick; //menambahkan event onClick pada tombol
- edInput:=TEdit.Create(Self);
- edInput.Parent:=Self;
- edInput.Top:=120;
- edInput.Left:=10;
- end;
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- lbBox.Free; //membebaskan component dari memori
- tombol.Free;
- edInput.Free;
- end;
- procedure TForm1.tombolClick(sender:TObject); //deklarasi tombol event ocClick
- begin
- if edInput.Text<>'' then
- begin
- lbBox.Items.Add(edInput.Text);
- end
- else
- begin
- ShowMessage('Edit harus di isi');
- end;
- end;
- end.
Nah sekarang, coba jalankan program anda.Bila sukses , maka program akan berfungsi sama seperti program sebelumnya yang di buat dengan cara drag-drop.Perbedaan yang paling terlihat adalah dari besarnya file *.exe yang di hasilkan.Ini adalah file *.exe dari proses drag-drop.
Sedangkan dengan proses coding , file *.exe nya adalah sebagai berikut.
Namun , apakah sebanding keuntungan file *.exe yang lebih kecil dengan waktu yang digunakan untuk membuatnya !?Saya rasa tidak.Penggunaan IDE lebih efisien dan efektif dibandingkan mengetik secara manual source code program kita.Namun , ada perasaan "gagah" bila membuat program dengan menulis source code secara manual.Sayangnya , deadline tidak mengenal gagah :D
Sekian postingan kali ini semog bermanfaat.
Sekian postingan kali ini semog bermanfaat.
0 komentar:
Post a Comment