Delphi 7 – MDI Form dan MDI Child

Form MDI? Form Induk dan form anak? Apa fungsinya? lihat gambar 1

gambar 1. form mdi

Form MDI (Multiple Document Interface) Form utama yang menjadi induk semua form yang di dalamnya akan kita letakkan formMDIchild (Jendela Anak), bagaimana cara buatnya?. Lihat Gambar 2.

Gambar2. Properties FormStyle

Cukup mudah form1 ubah FormStylenya menjadi fsMDIForm dan Form2 Ubah menjadi fsMDIChild.

Tapi terdapat beberapa perubahan atau pengaturan yang harus lakukan setelah anda menerapkan MDI Form untuk memperbaiki masalah masalah berikut:

1. Pada saat MDI Child Maximize, tidak ada tombol minimize, restore dan close untuk MDI child.

Cukum dengan tambahkan komponen mainmenu pada Form1 atau form utama, dan tombol-tombolnya pun akan tampil.

Gambar 3. Komponen Menu

Terlihat pada menu yang dibuat terdapat menu MDI CHILD – FORM 2, menu tersebut akan digunakan untuk menampilkan MDIChild(Form2), untuk melengkapinya isi script ini untuk memanggil form2

procedure TForm1.mniMDICHILDFORM21Click(Sender: TObject);
begin
  form2.show;
end;

dan kalian telah memiliki menu dan tombol.

Gambar 4. Tombol minimize tetal tampil

Form childnya belum dipanggi tapi sudah tampil duluan?.

2. MDIChild tampil bersamaan dengan form utama

apa bila kita akan mendisablekan MDIChild akan muncul pesan error bahwa MDIChild tidak boleh disable

Gambar 5. Pesan error saat mencoba mendisablekan MDI Child

perhatikan scrip ini Application.CreateForm(TForm2, Form2); yang ada pada list project1. Cara menampilkannya dengan menekan kombinasi ctrl+12 dialog unit list project tampil pilih/klik 2 kali project1.

Gambar 6. unit list of project group
Gambar 7. script Project1

pindahkan scrip tersebut Application.CreateForm(TForm2, Form2) ke menu yang sebelumnya kita buat sehingga scripnya menjadi seperi berikut

procedure TForm1.mniMDICHILDFORM21Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);
  form2.show;
end;

Dan lihat perubahannya kalian sudah bisa memanggilnya. Apakah sudah selesai?, Tentu tidak . Ternyata tombol close pada MDI Child tidak bekerja.

2. MDIChild Tidak bisa di tutup

Saat beralih ke form 2 on close. Lihat object inspector form2 klik 2 kali event onClose dan isi cripnya dengan Action:=caFree;

Gambar 8. Event OnClose
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;

download contoh

cara download

dan selamat berkreasi.

Tinggalkan komentar