[ CanClose ] Konfirmasi saat Form ingin ditutup...

untuk menghindari pentutpan form yang tidak sengaja, kita dapat melakukan dengan antisipasi yaitu sebuah pertanyaan apakah form tersebut benar benar ingin ditutup. Dalam delphi ada sebuah event yang bertanggung jawab dalam masalah ini. Event ini berjalan sesaat sebelum event OnClose.
Event ini namanya event OnCloseQuery. Sehingga  kita harus menempatkan pertanyaan atau konfirmasi pada event ini. dengan mengelolah parameter CanClose. Parameter ini secara default bernilai True artinya form jadi ditutup. CanClose kita ubah nilanya menjadi false, kemudian kita berikan pertanyaan jika user memilih jawaban yes form ditutup maka nilai canclose kita ubah menjadi true.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose :=false;
  if MessageDlg('Form mau ditutup...  sekarang.. ?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
       CanClose :=true;
  end;
end;

Sepertinya penjelasan ini membikin pusing saja apabila tidak disertakan contoh. untuk itu mari kita bikin aplikasi baru. kemudian tambahkan perintah pada ivent OnCloseQuery. lebih detailnya ada pada listing berikut ini.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=false;
  if MessageDlg('Form mau ditutup...  sekarang.. ?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
       CanClose:=true;
  end;
end;

end.
 
Jalankan aplikasi kemudian tutup aplikasi, pilih jawaban no kemudian tutup aplikasi sekali lagi kemudian pilih yes...
selamat mencoba

0 komentar:

Posting Komentar