Anda di halaman 1dari 2

Berikut tulisan singkat tentang cara membuat popup menu saat runtime, lewat kode , dengan Delphi.

Saya menggunakan Delphi 2009 dalam contoh ini, tapi kode yang a da di sini dapat juga diimplementasikan dengan Delphi versi lainnya. Kita mulai dengan sebuah aplikasi baru. Tambahkan sebuah TPanel ke form. Panel i ni akan dipasangi popup menu nantinya. Kini tambahkan unit Menus dan ShellAPI ke klausa uses. Unit menus berisi deklara si class TPopupMenu dan TMenuItem, sedangkan unit ShellAPI berisi deklarasi dan implementasi fungsi ShellExecute yang akan kita gunakan nantinya. 0001Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 0002Dialogs, ExtCtrls, ShellAPI, Menus; Kemudian, deklarasikan sebuah TPopupMenu menu dan dua buah TMenuItem (silahkan t ambahkan jika perlu). TMenuItem ini akan menjadi item-item menu yang dapat dikli k. 0001type 0002 TForm3 = class(TForm) 0003 Panel1: TPanel; 0004 private 0005 public 0006 { Public declarations } 0007 pmMain: TPopupMenu; 0008 miAbout, 0009 miOpenWeb: TMenuItem; 0010 end; Kini kita buat dua buah prosedur (sesuaikan dengan jumlah TMenuItem) sebagai met hod dari form: 0001type 0002 TForm3 = class(TForm) 0003 Panel1: TPanel; 0004 private 0005 procedure ShowAbout(Sender: TObject); 0006 procedure OpenWeb(Sender: TObject); 0007 public 0008 { Public declarations } 0009 pmMain: TPopupMenu; 0010 miAbout, 0011 miOpenWeb: TMenuItem; 0012 end; Perlu diperhatikan bahwa kedua prosedur harus memiliki sebuah parameter yaitu Se nder: TObject. Ini sesuai dengan tipe prosedur yang akan dijalankan saat TMenuIt em diklik. Lalu tekan Ctrl+Shift+C untuk menjalankan Code Completion. Code Completion ini a kan membuat implementasi kedua prosedur di atas secara otomatis. 0001procedure TForm3.OpenWeb(Sender: TObject); 0002begin 0003 ShellExecute(Handle, 'open', 'http://www.cenadep.org', nil, nil, SW_SHOWNO RMAL); 0004end; 0005 0006procedure TForm3.ShowAbout(Sender: TObject); 0007begin 0008 MessageBox(handle, 'Find more like this on'#13'http://www.cenadep.org','Ab out',MB_ICONINFORMATION or MB_OK);

0009end; Jangan lupa, untuk memanggil fungsi ShellExecute() pada proesdur OpenWeb, Anda h arus menyertakan unit ShellAPI pada klausa uses. Lihat kembali potongan kode per tama di atas. Lanjut, saat form di-create, kita buat kode implementasi TPopupMenu dan TMenuIte m tadi: 0001procedure TForm3.FormCreate(Sender: TObject); 0002begin 0003 pmMain := TPopupMenu.Create(Self); 0004 {implementasi TMenuItem:} 0005 miAbout := TMenuItem.Create(Self); 0006 miAbout.Caption := '&About...'; 0007 miAbout.OnClick := ShowAbout; 0008 0009 miOpenWeb := TMenuItem.Create(pmMain); 0010 miOpenWeb.Caption := '&Open Web'; 0011 miOpenWeb.OnClick := OpenWeb; 0012 pmMain.Items.Add([miOpenWeb, miAbout]); 0013 {Pasangkan TPopupMenu sebagai popup menu pada Panel1} 0014 Panel1.PopupMenu := pmMain; 0015end; Sudah jadi popup menu kita. Tinggal satu langkah lagi, membebaskan objek-objek T PopupMenu dan TMenuItem ini saat form di-destroy: view sourceprint? 0001procedure TForm3.FormDestroy(Sender: TObject); 0002begin 0003 miAbout.Free; 0004 miOpenWeb.Free; 0005 pmMain.Free; 0006end;

Anda mungkin juga menyukai