Menambahkan dialog konfirmasi pada ActionList Standard

Pada komponen ActionList telah disediakan banyak sekali action Standard yang akan sangat membantu dalam pemrograman delphi tanpa harus menulis code lagi secara manual.

Fungi-fungsi standar seperti File, Edit, Dataset dan lain-lain sudah tersedia kita tinggal pake, jika dikehendaki kita hanya perlu mengganti Caption dan iconnya saja.

Dalam prakteknya action standard yang telah disediakan ada kalanya tidak sesuai atau kurang mewakili kebutuhan kita.

Misalnya Action DataSetDelete yang fungsinya untuk menghapus record, pada saat dieksekusi akan langsung menjalankan tugasnya tanpa konfirmasi terlebih dulu, hal ini akan sangat rawan sekali bila user menekan tobol hapus tanpa sengaja.

Berikut ini contoh untuk menambahkan dialog konfirmasi pada action TDataSetDelete.

uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls,
  Grids, DBGrids, DB, IBCustomDataSet, IBDatabase, DBActns,
  ActnList;

type
  // Tambahkan ini ...
  TDataSetDelete = class(DBActns.TDataSetDelete)
  public
    procedure ExecuteTarget(Target: TObject); override;
  end;
  // Sampai sini .. Tekan Ctrl+Shift C untuk menulis codenya
  TForm1 = class(TForm)

...

...

...

{ TDataSetDelete }
procedure TDataSetDelete.ExecuteTarget(Target: TObject);
begin
     if MessageDlg('Yakin Dihapus ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
        inherited;

end;


Semoga bermanfaat

2 Comments to Menambahkan dialog konfirmasi pada ActionList Standard

  1. arga says:

    Apa bisa pak dialognya dibikin dua…
    Buat hapus dan update…
    Saya membuat procedure kaya tutorial diatas untuk dialog konfirmasi update.

    type
    TDataSetDelete = class(DBActns.TDataSetDelete)
    TDatasteEdit = class (DBActionswTDataSetEdit)
    public
    procedure ExecuteTarget(Target: TObject); overrid

    Mohon bantuan nya

  2. Imam Chalimi says:
    uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
      Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls,
      Grids, DBGrids, DB, IBCustomDataSet, IBDatabase, DBActns,
      ActnList;
    
    type
      // Tambahkan ini ...
      TDataSetDelete = class(DBActns.TDataSetDelete)
      public
        procedure ExecuteTarget(Target: TObject); override;
      end;
      // Sampai sini .. Tekan Ctrl+Shift C untuk menulis codenya
    
       // Tambahkan lagi
       TDataSetEdit = class(DBActns.TDataSetEdit)
      public
        procedure ExecuteTarget(Target: TObject); override;
      end;
    
      TForm1 = class(TForm)
    
    ...
    
    ...
    
    ...
    
    { TDataSetDelete }
    procedure TDataSetDelete.ExecuteTarget(Target: TObject);
    begin
         if MessageDlg('Yakin Dihapus ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
            inherited;
    
    end;
    
    // ini juga
    
    { TDataSetEdit }
    
    procedure TDataSetEdit.ExecuteTarget(Target: TObject);
    begin
         if MessageDlg('Yakin Diedit ?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
            inherited;
    
    end;
    
    
    
    

Leave a Reply

Your email address will not be published.