Di Delphi, setiap proyek memiliki setidaknya satu jendela - jendela utama program. Semua jendela aplikasi Delphi didasarkan pada Objek TForm.
Bentuk
Bentuk objek adalah blok bangunan dasar aplikasi Delphi, jendela aktual yang digunakan pengguna untuk berinteraksi saat menjalankan aplikasi. Formulir memiliki properti, acara, dan metode sendiri yang dengannya Anda dapat mengontrol penampilan dan perilaku mereka. Bentuk sebenarnya adalah komponen Delphi, tetapi tidak seperti komponen lainnya, formulir tidak muncul pada palet komponen.
Kami biasanya membuat objek formulir dengan memulai aplikasi baru (File | Aplikasi Baru). Bentuk yang baru dibuat ini akan, secara default, bentuk utama aplikasi - bentuk pertama yang dibuat saat runtime.
Catatan: Untuk menambahkan formulir tambahan ke proyek Delphi, pilih File | Bentuk baru.
Kelahiran
OnCreate
Acara OnCreate dipecat ketika TForm pertama kali dibuat, yaitu, hanya sekali. Pernyataan yang bertanggung jawab untuk membuat formulir ada di sumber proyek (jika formulir diatur agar secara otomatis dibuat oleh proyek). Saat formulir dibuat dan properti Visible-nya Benar, acara berikut terjadi dalam urutan yang tercantum: OnCreate, OnShow, OnActivate, OnPaint.
Anda harus menggunakan event handler OnCreate untuk melakukan, misalnya, tugas inisialisasi seperti mengalokasikan daftar string.
Objek apa pun yang dibuat di acara OnCreate harus dibebaskan oleh peristiwa OnDestroy.
OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint...
Sedang tampil
Acara ini menunjukkan bahwa formulir sedang ditampilkan. OnShow dipanggil tepat sebelum formulir terlihat. Selain formulir utama, acara ini terjadi ketika kami mengatur properti Visible form ke True, atau memanggil metode Show atau ShowModal.
Aktifkan
Acara ini dipanggil ketika program mengaktifkan formulir - yaitu, ketika formulir menerima fokus input. Gunakan acara ini untuk mengubah kontrol mana yang benar-benar fokus jika bukan yang diinginkan.
OnPaint, OnResize
Acara seperti OnPaint dan OnResize selalu dipanggil setelah formulir awalnya dibuat, tetapi juga disebut berulang kali. OnPaint terjadi sebelum kontrol pada formulir dicat (gunakan untuk lukisan khusus pada formulir).
Kehidupan
Kelahiran suatu bentuk tidak begitu menarik seperti kehidupan dan kematiannya. Saat formulir Anda dibuat dan semua kontrol sedang menunggu acara ditangani, program berjalan hingga seseorang mencoba menutup formulir!
Kematian
Aplikasi yang digerakkan oleh peristiwa berhenti berjalan ketika semua formnya ditutup dan tidak ada kode yang dieksekusi. Jika formulir tersembunyi masih ada ketika formulir terakhir yang terlihat ditutup, aplikasi Anda akan tampak memiliki berakhir (karena tidak ada formulir yang terlihat), tetapi sebenarnya akan terus berjalan sampai semua formulir tersembunyi Tutup. Pikirkan saja situasi di mana bentuk utama disembunyikan lebih awal dan semua bentuk lainnya ditutup.
... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy
OnCloseQuery
Ketika kami mencoba untuk menutup formulir menggunakan metode Tutup atau dengan cara lain (Alt + F4), acara OnCloseQuery disebut. Dengan demikian, pengendali acara untuk acara ini adalah tempat untuk mencegat penutupan formulir dan mencegahnya. Kami menggunakan OnCloseQuery untuk bertanya kepada pengguna apakah mereka yakin mereka benar-benar ingin formulir ditutup.
prosedur TForm1.FormCloseQuery (Pengirim: TObject; var CanClose: Boolean);
mulai
jikaMessageDlg('Benar-benar tutup jendela ini?', MtConfirmation, [mbOk, mbCancel], 0) = mrCancel kemudian CanClose: = Salah;
akhir;
Penangan aktivitas OnCloseQuery berisi variabel CanClose yang menentukan apakah formulir diizinkan untuk ditutup. Penangan event OnCloseQuery dapat mengatur nilai CloseQuery ke False (melalui parameter CanClose), membatalkan metode Close.
OnClose
Jika OnCloseQuery menunjukkan bahwa formulir harus ditutup, acara OnClose disebut.
Acara OnClose memberi kita satu kesempatan terakhir untuk mencegah penutupan formulir. Penangan aktivitas OnClose memiliki parameter Tindakan, dengan empat nilai berikut yang mungkin:
- tidak ada. Formulir tidak boleh ditutup. Sama seperti jika kita telah menetapkan CanClose ke False di OnCloseQuery.
- tersembunyi. Alih-alih menutup formulir Anda menyembunyikannya.
- bisa bebas. Formulir ditutup, jadi memori yang dialokasikan itu dibebaskan oleh Delphi.
- ingatkan. Bentuknya diminimalkan, bukannya tertutup. Ini adalah tindakan default untuk formulir anak MDI. Saat pengguna mematikan Windows, acara OnCloseQuery diaktifkan, bukan OnClose. Jika Anda ingin mencegah Windows dimatikan, masukkan kode Anda di event handler OnCloseQuery, tentu saja CanClose = False tidak akan melakukan ini.
OnDestroy
Setelah metode OnClose diproses dan formulir ditutup, acara OnDestroy dipanggil. Gunakan acara ini untuk operasi yang berlawanan dengan yang ada di acara OnCreate. OnDestroy digunakan untuk membatalkan alokasi objek yang terkait dengan formulir dan membebaskan memori yang sesuai.
Ketika bentuk utama untuk proyek ditutup, aplikasi berakhir.