Select Page

Dalam suatu program pada beberapa sesi sering ditampilkan kotak pesan atau sering disebut juga pop-up untuk memberikan notfikasi kepada pengguna baik informasi, peringatan maupun error. Dan juga, beberapa sesi dibutuhkan pengguna untuk memberikan keputusan untuk melanjutkan proses selanjutnya seperti sebelum keluar dari program, pengguna ditanya apakah akan benar-benar keluar.

Lazarus Free Pascal menyediakan fungsi atau prosedur untuk menampilkan beberapa jenis kotak pesan yang bisa kita gunakan sesuai kebutuhan.

ShowMessage

Menggunakan unit Dialogs, ShowMessage merupakan prosedur bukan fungsi yang menampilkan kotak pesan untuk menyampaikan pesan dengan sebuah tombol Ok.

procedure ShowMessage(const Msg: string);

Contoh penulisan ShowMessage bisa lihat dibawah

procedure TForm1.btnShowMessageClick(Sender: TObject);
begin
  ShowMessage('Message for you : ' + Edit1.Text);
end;

Untuk menambahkan beberapa baris pesan, kita bisa menambahkan perintah sLineBreak atau kode ascii #13#10.

MessageBox

MessageBox menampilkan pesan dan tombol pilihan (biasanya Ok dan Cancel) yang meminta pengguna untuk mengambil sebuah keputusan. MessageBox merupakan bagian dari Tapplication, jadi kita memberikan awal application.messagebox untuk menggunakannya. Kamu juga harus menambahkan unit LCLType untuk menggunakan fungsi MesssageBox.

function Application.MessageBox(Text, Caption: PChar; Flags: LongInt): Integer;

Parameter yang digunakan:

Text: string yang ditampilkan sebagai pesan;

Caption: string label pada bagian atas kotak pesan;

Flags: longint – sebuah integer yang dibuat dengan menjumlahkan berbagai konstanta untuk menentukan isi dan perilaku kotak, misalnya MB_ABORTRETRYIGNORE + MR_ICONQUESTION akan menyebabkan aplikasi menampilkan ikon kueri (?) di dalam kotak dengan tiga tombol: ABORT RETRY IGNORE.

Berikut Flags yang bisa kita gunakan pada MessageBox

KonstantaKeterangan
MB_OKTombol OK
MB_OKCANCELTombol OK dan Cancel
MB_ABORTRETRYIGNORETombol Abort, Retry dan Ignore
MB_YESNOTombol Yes dan No
MB_YESNOCANCELTombol Yes, No dan Cancel
MB_RETRYCANCELTombol Retry dan Cancel
MB_ICONERRORIcon Kesalahan
MB_ICONINFORMATIONIcon Informasi
MB_ICONQUESTIONIcon Pertanyaan
MB_ICONWARNINGIcon Peringatan

Fungsi MessageBox mengembalikan nilai yang merupakan hasil klik pengguna.

KonstantaKeterangan
IDYESPengguna memilih tombol Yes
IDNOPengguna memilih tombol No
IDCANCELPengguna memilih tombol Cancel
IDABORTPengguna memilih tombol Abort
IDRETRYPengguna memilih tombol Retry
IDIGNOREPengguna memilih tombol Ignore

Contoh penggunaan MessageBox

procedure TForm1.btnMessageBoxClick(Sender: TObject);
var
  Reply, BoxStyle: Integer;
begin
  BoxStyle := MB_ICONQUESTION + MB_YESNO;
  Reply := Application.MessageBox('Press either button', 'MessageBoxDemo', BoxStyle);
  if Reply = IDYES then Application.MessageBox('Yes       ', 'Reply',MB_ICONINFORMATION)
    else Application.MessageBox('No         ', 'Reply', MB_ICONHAND);
end;

MessageDLG

Fungsi MessageDLG memiliki dua versi, yakni kotak pesan dengan caption dan tanpa caption.

function MessageDlg(const aMsg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

Parameter DlgType  dapat menggunakan konstanta dibawah

DlgTypeKeterangan
mtConfirmationMenampilkan icon konfirmasi / pertanyaan
mtErrorMenampilkan icon kesalahan / error
mtInformationMenampilkan icon informasi
mtWarningMenampilkan icon peringatan

Sedangkan jenis Buttons yang bisa digunakan adalah sebagai berikut:

ButtonsKeterangan
mbYesTombol Yes
mbNoTombol No
mbOKTombol OK
mbCancelTombol Cancel
mbAbortTombol Abort
mbRetryTombol Retry
mbIgnoreTombol Ignore
mbAllTombol All
mbNoToAllTombol No to All
mbYesToAllTombol Yes to All
mbHelpTombol Help

Atau kita juga bisa menggunakan kombinasi tombol yang siap pakai seperti dibawah:

KonstantaKeterangan
mbYesNoCancelmbYes, mbNo, mbCancel
mbYesNombYes, mbNo
mbOkCancelmbOk, mbCancel
mbAbortRetryIgnorembAbort, mbRetry, mbIgnore

Fungsi MessageDLG memberikan hasil sesuai dengan tombol yang klik pengguna.

KonstantaKeterangan
mrYesPemakai memilih tombol Yes
mrNoPemakai memilih tombol No
mrOKPemakai memilih tombol OK
mrCancelPemakai memilih tombol Cancel
mrAbortPemakai memilih tombol Abort
mrRetryPemakai memilih tombol Retry
mrIgnorePemakai memilih tombol Ignore
mrAllPemakai memilih tombol All
mrYesToAllPemakai memilih tombol Yes to All
mrNoToAllPemakai memilih tombol No to All
mrNoneTidak memilih tombol yang ada

Pastikan juga kamu menambahkan unit LCLType jika menggunakan kotak pesan MessageDLG.

Contoh penggunaan MessageDLG adalah sebagai berikut

procedure TForm1.btnMessageDlgClick(Sender: TObject);
begin
    if MessageDlg('Question', 'Do you wish to Execute?', mtConfirmation,
   [mbYes, mbNo, mbIgnore],0) = mrYes
  then { Execute rest of Program }
    ShowMessage('OK!');
end;

Untuk lebih lengkapnya, kamu bisa mengunduh contoh program Lazarus Free Pascal cara menggunakan kotak pesan disini.