Rabu, 28 September 2011

Simulasi Declare Component Secara Run Time di Delphi 7

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.

Simak Juga Tutorial Lainnya:

1 komentar:

Anonim mengatakan...

Gan.. emang nggak sebanding ya ukuran exe-nya. Nah sekarang yg jadi pertanyaan. gimana cara supaya file exe hasil compile di delphi bisa kecil (nggak pake KOL ya)...

pernah nyoba nggak vcl komponen di masukin dll. trus kita panggil dari dll aja. kira2 bisa jadi solusi nggak?

Posting Komentar