?? archives_class.~pas
字號(hào):
unit Archives_Class; //MDIChild檔案分類管理窗體項(xiàng)目
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Inherit, ExtCtrls, StdCtrls, Mask, DBCtrls, Buttons, ComCtrls,
ImgList, ToolWin, Menus, Grids, DBGrids;
type
TF_Class = class(TF_Inherit)
TV_Class: TTreeView;
Splitter1: TSplitter;
PopupMenu1: TPopupMenu;
P_Add: TMenuItem;
P_Modify: TMenuItem;
P_Delete: TMenuItem;
Panel1: TPanel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
SButton1: TSpeedButton;
SButton2: TSpeedButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
procedure FormCreate(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure TV_ClassDblClick(Sender: TObject);
procedure SButton1Click(Sender: TObject);
procedure SButton2Click(Sender: TObject);
procedure cmdaddClick(Sender: TObject);
procedure cmdmodiClick(Sender: TObject);
procedure cmddelClick(Sender: TObject);
procedure cmdstoreClick(Sender: TObject);
procedure cmdquitClick(Sender: TObject);
procedure cmdfirstClick(Sender: TObject);
procedure cmdlastClick(Sender: TObject);
procedure cmdpreClick(Sender: TObject);
procedure cmdnextClick(Sender: TObject);
private
{ Private declarations }
procedure DS_State(State:boolean); //用戶自定義控制數(shù)據(jù)感知控件是否可編輯函數(shù)
public
{ Public declarations }
end;
var
F_Class: TF_Class;
implementation
uses DataModule,MonthCalendar, Borrow_Return; //引用數(shù)據(jù)模塊、日期選擇項(xiàng)目
{$R *.dfm}
procedure TF_Class.FormCreate(Sender: TObject);
var {*****檔案分類管理窗體創(chuàng)建事件*****}
root,node:TTreeNode; //定義二個(gè)存放節(jié)點(diǎn)元件TTreeNode
str:AnsiString;
i:integer;
begin
inherited;
DM.AT_Class.Filtered := false; //關(guān)閉檔案分類資料信息表過(guò)濾器
TV_Class.Items.Clear; //清空TreeView所有節(jié)點(diǎn)
root := TTreeNode.Create(TV_Class.Items); //聲明節(jié)點(diǎn)元件指標(biāo)變量
node := TTreeNode.Create(TV_Class.Items);
root := TV_Class.Items.AddChild(NiL,'檔案分類'); //增加檔案分類父節(jié)點(diǎn)
DM.AT_Class.First; //設(shè)定當(dāng)前活動(dòng)記錄為第一條記錄
for i:=0 to DM.AT_Class.RecordCount-1 do //填寫(xiě)檔案分類信息表中所有記錄的分類名字段到TreeView
begin
str := TrimRight(DM.AT_Class['Class_Name']); //取得檔案分類信息表中分類名字段值
node := TV_Class.Items.AddChild(root,str); //增加一個(gè)子節(jié)點(diǎn)
DM.AT_Class.Next; //當(dāng)前活動(dòng)記錄下移一條記錄
end;
root.Expand(true); //展開(kāi)檔案分類父結(jié)點(diǎn)
end;
procedure TF_Class.DS_State(State:boolean);
begin {*****用戶自定義控制數(shù)據(jù)感知控件是否可編輯函數(shù)*****}
if State then //State為true時(shí),數(shù)據(jù)感知控件不可編輯
begin
DBEdit1.ReadOnly := true; DBEdit2.ReadOnly := true;
DBEdit3.ReadOnly := true; DBEdit4.ReadOnly := true;
DBEdit5.ReadOnly := true; DBEdit6.ReadOnly := true;
DBEdit7.ReadOnly := true; DBEdit8.ReadOnly := true;
SButton1.Enabled := false; SButton2.Enabled := false;
end
else //State為false時(shí),數(shù)據(jù)感知控件可編輯
begin
DBEdit1.ReadOnly := false; DBEdit2.ReadOnly := false;
DBEdit3.ReadOnly := false; DBEdit4.ReadOnly := false;
DBEdit5.ReadOnly := false; DBEdit6.ReadOnly := false;
DBEdit7.ReadOnly := false; DBEdit8.ReadOnly := false;
SButton1.Enabled := true; SButton2.Enabled := true;
end;
end;
procedure TF_Class.ToolButton1Click(Sender: TObject);
var {*****增加工具條快捷按鈕單擊事件*****}
Serial:integer;
begin
inherited;
DS_State(false); //數(shù)據(jù)感知控件可編輯
DM.AT_Count.First; //移動(dòng)記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄
DM.AT_Count.MoveBy(2); //當(dāng)前活動(dòng)記錄下移到第三條記錄
Serial := DM.AT_Count['Count_Value']; //取得檔案分類序號(hào)值
DM.AT_Class.Append; //檔案分類信息表處于追加記錄狀態(tài)
DM.AT_Class['Class_ID'] := Serial+1; //顯示當(dāng)前記錄序號(hào)
end;
procedure TF_Class.ToolButton2Click(Sender: TObject);
begin {*****編輯工具條快捷按鈕單擊事件*****}
inherited;
DS_State(false); //數(shù)據(jù)感知控件可編輯
DM.AT_Class.Edit; //檔案分類信息表處于編輯記錄狀態(tài)
end;
procedure TF_Class.ToolButton3Click(Sender: TObject);
begin {*****刪除工具條快捷按鈕單擊事件*****}
inherited;
DM.AT_Class.Delete; //刪除一條檔案分類信息表記錄
FormCreate(Sender); //刷新TreeView節(jié)點(diǎn)值
end;
procedure TF_Class.ToolButton4Click(Sender: TObject);
begin {*****提交工具條快捷按鈕單擊事件*****}
inherited;
DS_State(true); //數(shù)據(jù)感知控件不可編輯
DM.AT_Class.Post; //提交對(duì)檔案分類信息表數(shù)據(jù)集的操作,操作生效
FormCreate(Sender); //刷新TreeView節(jié)點(diǎn)值
DM.AT_Count.First; //移動(dòng)記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄
DM.AT_Count.MoveBy(2); //當(dāng)前活動(dòng)記錄下移到第三條記錄
DM.AT_Count.Edit; //記錄號(hào)計(jì)數(shù)數(shù)據(jù)表處于編輯狀態(tài)
DM.AT_Count['Count_Value'] := StrToInt(DBEdit1.Text); //賦分類號(hào)字段為分類序列號(hào)值
DM.AT_Count.Post; //提交分類序列號(hào)編輯操作
end;
procedure TF_Class.ToolButton6Click(Sender: TObject);
begin {*****取消工具條快捷按鈕單擊事件*****}
inherited;
DS_State(true); //數(shù)據(jù)感知控件不可編輯
DM.AT_Class.Cancel; //取消對(duì)檔案分類信息表數(shù)據(jù)集的操作,回到前一后提交的數(shù)據(jù)集
end;
procedure TF_Class.ToolButton12Click(Sender: TObject);
begin {*****關(guān)閉工具條快捷按鈕單擊事件*****}
inherited;
F_Class.Close; //關(guān)閉檔案分類管理窗口
end;
procedure TF_Class.TV_ClassDblClick(Sender: TObject);
begin {*****TreeView控件對(duì)象雙擊事件*****}
inherited;
if TV_Class.Selected.Text<>'檔案分類' then
begin
DM.AT_Class.Filtered := false; //關(guān)閉過(guò)濾器
DM.AT_Class.Filter := 'Class_Name = '''+TV_Class.Selected.Text+''''; //設(shè)置過(guò)濾值
DM.AT_Class.Filtered := true; //啟動(dòng)過(guò)濾器
end;
end;
procedure TF_Class.SButton1Click(Sender: TObject);
begin {*****建檔日期選擇按鈕SButton1單擊事件*****}
inherited;
F_Date.Left := F_Class.Left+SButton1.Left; //控件日期選擇窗口顯示位置
F_Date.Top := F_Class.Top+SButton1.Top;
F_Date.ShowModal; //彈出日期選擇窗口
if F_Date.ModalResult = mrOk then //用戶確定選擇的日期
DM.AT_Class['Archives_SDate'] := F_Date.MC_Date.Date; //選擇的日期賦建檔日期字段
end;
procedure TF_Class.SButton2Click(Sender: TObject);
begin {*****修改日期選擇按鈕SButton2單擊事件*****}
inherited;
F_Date.Left := F_Class.Left+SButton2.Left; //控件日期選擇窗口顯示位置
F_Date.Top := F_Class.Top+SButton2.Top;
F_Date.ShowModal; //彈出日期選擇窗口
if F_Date.ModalResult = mrOk then //用戶確定選擇的日期
DM.AT_Class['Archives_MDate'] := F_Date.MC_Date.Date; //選擇的日期賦修改日期字段
end;
procedure TF_Class.cmdaddClick(Sender: TObject);
var {*****增加按鈕單擊事件*****}
Serial:integer;
begin
inherited;
DS_State(false); //數(shù)據(jù)感知控件可編輯
DM.AT_Count.First; //移動(dòng)記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄
DM.AT_Count.MoveBy(2); //當(dāng)前活動(dòng)記錄下移到第三條記錄
Serial := DM.AT_Count['Count_Value']; //取得檔案分類序號(hào)值
DM.AT_Class.Append; //檔案分類信息表處于追加記錄狀態(tài)
DM.AT_Class['Class_ID'] := Serial+1; //顯示當(dāng)前記錄序號(hào)
end;
procedure TF_Class.cmdmodiClick(Sender: TObject);
begin {*****修改按鈕單擊事件*****}
inherited;
DS_State(false); //數(shù)據(jù)感知控件可編輯
DM.AT_Class.Edit; //檔案分類信息表處于編輯記錄狀態(tài)
end;
procedure TF_Class.cmddelClick(Sender: TObject);
begin {*****刪除按鈕單擊事件*****}
inherited;
DM.AT_Class.Delete; //刪除一條檔案分類信息表記錄
FormCreate(Sender); //刷新TreeView節(jié)點(diǎn)值
end;
procedure TF_Class.cmdstoreClick(Sender: TObject);
begin {*****保存按鈕單擊事件*****}
inherited;
DS_State(true); //數(shù)據(jù)感知控件不可編輯
DM.AT_Class.Post; //提交對(duì)檔案分類信息表數(shù)據(jù)集的操作,操作生效
FormCreate(Sender); //刷新TreeView節(jié)點(diǎn)值
DM.AT_Count.First; //移動(dòng)記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄
DM.AT_Count.MoveBy(2); //當(dāng)前活動(dòng)記錄下移到第三條記錄
DM.AT_Count.Edit; //記錄號(hào)計(jì)數(shù)數(shù)據(jù)表處于編輯狀態(tài)
DM.AT_Count['Count_Value'] := StrToInt(DBEdit1.Text); //賦分類號(hào)字段為分類序列號(hào)值
DM.AT_Count.Post; //提交分類序列號(hào)編輯操作
end;
procedure TF_Class.cmdquitClick(Sender: TObject);
begin {*****取消或關(guān)閉按鈕單擊事件*****}
// inherited;
if cmdquit.Caption='取消' then
begin
DS_State(true); //數(shù)據(jù)感知控件不可編輯
DM.AT_Class.Cancel; //取消對(duì)檔案分類信息表數(shù)據(jù)集的操作,回到前一后提交的數(shù)據(jù)集
inherited;
end
else
F_Class.Close; //關(guān)閉檔案分類管理窗口
end;
procedure TF_Class.cmdfirstClick(Sender: TObject);
begin
inherited;
DM.AT_Class.First;
end;
procedure TF_Class.cmdlastClick(Sender: TObject);
begin
inherited;
DM.AT_Class.Last;
end;
procedure TF_Class.cmdpreClick(Sender: TObject);
begin
inherited;
DM.AT_Class.MoveBy(-1);
if DM.AT_Class.Bof then
begin
showmessage('這是第一條記錄');
end;
end;
procedure TF_Class.cmdnextClick(Sender: TObject);
begin
inherited;
DM.AT_Class.MoveBy(1);
if DM.AT_Class.Eof then
begin
showmessage('這是最后一條記錄');
end;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -