Skip to main content

Cara Disable Menu Close Pada Form Di Delphi

Sebuah form yang normal biasanya mempunyai tiga tombol yang terletak pada bagian title bar, yaitu tombol maximize untuk menampilkan form secara maksimal, tombol minimize untuk mengubah form aktif ke taskbar, dan tombol close untuk menutup form.

Untuk aplikasi tertentu mungkin Anda ingin "memaksa" para pengguna aplikasi Anda dengan hanya dapat menutup program melalui menu yang telah Anda sediakan. Dengan demikian, pengguna aplikasi tidak dapat menutup program melalui menu close.

Untuk membuat hal itu terjadi, Anda dapat mendisable menu close seperti contoh di bawah ini:

procedure TFrmMain.FormCreate(Sender: TObject);
var
  hMenuHandle: HMENU;
begin
  hMenuHandle:= GetSystemMenu(FrmMain.Handle, FALSE);
  if (hMenuHandle <> 0) then
    DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;

Perhatikan perbedaan tampilan form biasa dan tampilan form setelah menu close disabled.

disable menu close pada form di delphi

Langkah pertama adalah mencari handle dari window menu atau system menu atau control menu, yang Anda lakukan dengan menggunakan fungsi GetSystemMenu.

function DeleteMenu(hMenu: HMENU, uPosition: Integer, uFlags: Integer): Boolean;

Parameter pertama dari fungsi GetSystemMenu adalah handle dari window atau form. Dalam contoh ini nama formnya adalah FrmMain, jika Anda mempunyai form dengan nama yang lain maka sesuaikan dengan nama form Anda. Parameter kedua adalah bRevert. Jika nilai bRevert bernilai True, maka nilai balik dari fungsi GetSystemMenu adalah NULL. Sebaliknya, jika bRevert bernilai False, maka nilai baliknya adalah handle dari copy dari window menu.
Jika handle menu sudah ditemukan, langkah selanjutnya adalah menghapus item pada window menu dengan menggunakan fungsi DeleteMenu.

function DeleteMenu(hMenu: HMENU, uPosition: Integer, uFlags: Integer): Boolean;

Parameter pertama adalah handle dari window menu (yang merupakan hasil pencarian dengan fungsi GetSystemMenu). Parameter kedua merupakan posisi atau pengenal menu. Jika Anda mengisi parameter ketiga dengan MF_BYCOMMAND, maka parameter kedua dapat bernilai SC_CLOSE, SC_MOVE, dan SC_SIZE. Sebaliknya jika Anda mengisi parameter ketiga dengan MF_BYPOSITION, maka Anda dapat mengisi parameter kedua dengan suatu nilai integer yang merepresentasikan menu Close.

Fungsi DeleteMenu akan mengembalikan nilai True jika penghapusan menu berhasil dan mengembalikan nilai False jika gagal.
Kedua perintah di bawah ini akan mendapatkan hasil yang sama:

DeleteMenu(hMenuHandle, 6, MF_BYPOSITION);
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);

Demikian pembahasan kita kali ini. Semoga artikel ini dapat bermanfaat bagi Anda yang membutuhkan. Sampai bertemu di artikel selanjutnya. Salam.

Comments

Popular posts from this blog

Pengenalan Dasar Qlik Sense

Dewasa ini konsep penyajian data informasi banyak mengalami perubahan yang menggembirakan. Jika dahulu, konsep penyajian data adalah dalam bentuk larik-larik data berisi teks dan biasanya tidak dinamis dan tidak interaktif. Sekarang, seiring dengan pertumbuhan data informasi yang masif, dibutuhkan sebuah teknik penyajian data yang semakin sederhana namun memuat banyak informasi, tersaji secara dinamis dan interaktif, menjadikan pekerjaan analisis data lebih menyenangkan dari sebelumnya. Di sinilah konsep Business Intelligence berawal. Idenya adalah, saya sajikan kepada Anda begitu banyak informasi yang tentu saja yang Anda butuhkan, dalam format visual yang bersih, informatif, dinamis, dan interaktif dalam layar komputer Anda. Qlik Sense merupakan sebuah Aplikasi Reporting untuk keperluan Bussiness Intelligence. Merupakan pengembangan dari aplikasi BI pendahulunya yaitu QlikView . Qlik Sense pada dasarnya sama dengan QlikView . Hanya saja Qlik Sense lebih menekankan pada ide

Cara Membuat Aplikasi Di Qlik Sense

Salah satu kelebihan Qlik Sense dari software BI lainnya terletak pada penggunaannya yang begitu intuitif sehingga memberikan pengalaman pengguna yang mudah, menyenangkan, dan yang paling penting, fitur-fitur dalam Qlik Sense tersebut mudah dipelajari sehingga Anda akan relatif cepat menguasainya dan Anda dapat lebih fokus pada apa yang ingin Anda buat daripada memikirkan bagaimana cara membuatnya. Seperti yang telah saya jelaskan pada artikel sebelumnya, aplikasi Qlik Sense merupakan sebuah file yang berekstensi qvf . Di dalam aplikasi Qlik Sense terdiri dari sejumlah Sheet atau lembar kerja, di mana dalam sheet tersebut Anda membuat visualisasi data Anda. Anda dapat membuat lebih dari satu sheet dalam sebuah aplikasi Qlik Sense Anda, dan antar sheet akan saling terhubung satu sama lain. Membuat aplikasi di Qlik Sense begitu mudah dan intuitif. berikut langkah-langkahnya: Jalankan Qlik Sense. Setiap Qlik Sense dijalankan pertama kali akan menampilkan popup window selamat da

Cara Membuat Dan Menggunakan Unit Di Delphi

Artikel ini adalah lanjutan dari artikel Bekerja Dengan Unit Di Delphi .  Untuk membuat unit baru, pilih menu File | New | Unit . Listing di bawah ini merupakan suatu contoh unit yang dibuat Delphi. unit Unit2; interface implementation end.