In the database application development, the programmer should often deal with one thing that is when the user close a window (called Form in Delphi) where data was maintained, the program should judge whether the data was changed without saving and warn the user about this case. Almost all the programmer can deal with this easily, and the code is very simple as we know. The following code (written in Delphi 6) is the normal method to deal with the problem. It is base on one table maintenance and there are a DBGrid (named DBGRid) which shows the data of the table, a DBEdit (named DBEditName) which can be used to edit the data of the table and six Buttons (respective named BtnAdd, BtnModify, BtnDelete, BtnSave, BtnCancle, BtnClose). The last button is used to close the Form and the others are dealing with the data. I think their name show their function clearly and no explanation is given here.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids;
type
TForm1 = class(TForm)
BtnModify: TBitBtn;
BtnCancel: TBitBtn;
BtnAdd: TBitBtn;
BtnDelete: TBitBtn;
BtnSave: TBitBtn;
BtnClose: TBitBtn;
DBGrid1: TDBGrid;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure BtnSaveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
protected
{Protected declarations}
function DataModifiedWithoutSaving():Boolean;virtual;abstract;
end;
var Form1:TForm1 ;
implementation
{$R *.dfm}
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if DataModifiedWithoutSaving then
begin
if MessageDlg(''''The data has be changed without saving, would you like save the data?'''',mtWarning,[mbYes,mbNo],0) = mrNo then
begin
CanClose := True;
end else begin
BtnSaveClick(Self);
CanClose := True;
end;
end;
end;
procedure TForm1.BtnSaveClick(Sender: TObject);
begin
//
end;
[1] [2] [3] 下一页 [办公软件]excel中的VBA中的With语句的使用介绍及实例 [系统软件]OLE with the internet explorer [常用软件]Window Media Player 播放器 [Delphi程序]Window SubClassing之另类运用(之一) [Delphi程序]Window SubClassing另类运用(之二) [Delphi程序]Window 消息大全使用详解 [Delphi程序]Building ActiveX Controls with Delphi 3 [VB.NET程序]Socket Programming with VB [VB.NET程序]Managing Windows with WMI [网页制作]Chromeless Window For IE6 SP1
|