日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

delphi开发日志——基窗体,使用面向对象编程的编程思想创建基类

發布時間:2024/4/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delphi开发日志——基窗体,使用面向对象编程的编程思想创建基类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
delphi的VCL就是面向對象的,因此我無論我們是使用她來開發數據庫的管理信息系統,還是網絡應用,都可以說是面向對象,雖然可能很多人都像我當初一樣,不知道什么時面向對象,如何使用面向對象來編程。在這里我不用理論來說明什么是面積對象,我們將面向對象編程的思想應用到我們的程序開發中,邊實踐邊理解。
首先創建一個窗體,放入ActionList1控件,命名為actlstChild,放入ImageList1,命名為actlstChildImageList,再設置一些基本的屬性,如:FormStyle為fsMDIChild,窗體最大化等。此窗體用于將來其它窗體的基窗體。當操作主窗體中的一些功能時需要關聯到基窗體上。因此窗體創建的時候要將主窗體的操作事件全部賦值到基窗體。為了讓界面和代碼分離,我們需要創建一個類(單元文件),專門用于基窗體上的一些操作。新建單元文件untBaseClass.pas,代碼如下:

unit untBaseClass;

interface

uses
? Windows,Messages,SysUtils,Variants,Classes,DB,ADODB;

type
? TBaseClass = class
? private
? public
??? constructor create;
??? destructor Destroy;override;

??? procedure AddData;
??? procedure CancelData;
??? procedure SaveData;
??? procedure DeleteData;
??? procedure ModifyData;

? end;

implementation

uses untDM, untGlobal, untMain, untBase;

constructor TBaseClass.create;
begin

end;

destructor TBaseClass.Destroy;
begin
? inherited;
end;

procedure TBaseClass.AddData;
begin
? With frmDM do
? if Assigned(dsMaster.DataSet) then
??? if? not(dsMaster.State in [dsEdit,dsInsert]) then
??? begin
????? try
??????? (dsMaster.DataSet as TADOQuery).Append;
????? Except
??????? on E:exception do
????????? MsgBox('增加錯誤!'+#13+'出錯數類名:'+E.ClassName+#13+'出錯信息:'+E.Message,0);
????? end;
??? end;

end;

procedure TBaseClass.CancelData;
begin
? MsgBox('取消操作',0)
end;

procedure TBaseClass.DeleteData;
begin

end;

procedure TBaseClass.SaveData;
begin
? With frmDM do
? if Assigned(dsMaster.DataSet) then
??? if? dsMaster.State in [dsEdit,dsInsert] then
??? begin
????? try
??????? conDB.BeginTrans;
??????? (dsMaster.DataSet as TADOQuery).Post;
??????? (dsMaster.DataSet as TADOQuery).UpdateBatch;
??????? conDB.CommitTrans;
????? Except
??????? conDB.RollbackTrans;
??????? Raise exception.Create('增加錯誤!'
????? end;
??? end;
end;
procedure TBaseClass.ModifyData;
begin
? MsgBox('修改數據操作',0)
end;

end.

此時將基窗體的事件關聯起來,基窗體的主要功能代碼如下:
procedure TfrmBase.FormCreate(Sender: TObject);
begin
? objBaseClass:=TBaseClass.create;
? RelationMainFormEvent;
end;

procedure TfrmBase.FormClose(Sender: TObject; var Action: TCloseAction);
begin
? Action:=caFree;
? Self:=nil;
end;

procedure TfrmBase.RelationMainFormEvent;
begin
??? frmMain.actAdd.OnExecute:=actAdd.OnExecute;
??? frmMain.actAdd.Enabled:=True;
??? frmMain.actModify.OnExecute:=actModify.OnExecute;
??? frmMain.actModify.Enabled:=True;
??? frmMain.actSave.OnExecute:=actSave.OnExecute;
??? frmMain.actSave.Enabled:=true;
end;

procedure TfrmBase.actAddExecute(Sender: TObject);
begin
? objBaseClass.AddData;
end;

procedure TfrmBase.actDeleteExecute(Sender: TObject);
begin
? objBaseClass.DeleteData;
end;

procedure TfrmBase.actSaveExecute(Sender: TObject);
begin
? objBaseClass.SaveData;
end;

procedure TfrmBase.actCancelExecute(Sender: TObject);
begin
? objBaseClass.CancelData;
end;

procedure TfrmBase.actModifyExecute(Sender: TObject);
begin
? objBaseClass.ModifyData;
end;

基本的功能做完后,下一步就可以創建一個新窗體并繼承此窗體。

轉載于:https://www.cnblogs.com/DelphiFan/archive/2008/02/05/1645610.html

總結

以上是生活随笔為你收集整理的delphi开发日志——基窗体,使用面向对象编程的编程思想创建基类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。