📄 ufrmtophn.pas
字号:
{*******************************************************************************
* 用于树不托动的模板 业务模块经常用到 特别是单据类
* 风格:工具条+树+表格
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 改进后的窗体 主要是界面上 去掉了标题栏
* 工具条该为 Pannle 制作 更加灵活的 按钮 有 SpeetBtn
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 标准工具条 Height=30
* 工具条上按钮高 = 25 宽=30 所以如果 PnlTOP 高 = 30 就刚好显示工具条
* 如果 PnlTOP 高 > 30 就可以放 其他控件 制作其他单据等
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 界面经过改动 已经很完整了 很适用 工作去很大
* 用Panel 代替了工具条 更加 灵活实用
* 200303021 符林
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 在华南LMis 项目中 感觉 应该改进 方法如此
* 界面应该视野开阔 繁简分离 有主有次 有纲有常 有概括 有明细
*******************************************************************************}
unit uFrmTopHN;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
uFrmTop, AppEvnts, ActnList, ExtCtrls, Buttons, ImgList, ComCtrls,
ToolWin, OleCtrls, MSFlexGridLib_TLB, StdCtrls,uDataSys, Menus, dxCntner,
dxTL;
type
TFrmTopHN = class(TFrmTop)
PnlTop: TPanel;
PnlTrv: TPanel;
PnlTrvBiaoTi: TPanel;
SpeedButton2: TSpeedButton;
Panel5: TPanel;
SpeedButton1: TSpeedButton;
PnlGrid: TPanel;
Splitter2: TSplitter;
IMGTree: TImageList;
ActTrvVisible: TAction;
PnlToolBar: TPanel;
Bevel1: TBevel;
Bevel2: TBevel;
SpbtnRefresh: TSpeedButton;
SpbtnAdd: TSpeedButton;
SpbtnEdit: TSpeedButton;
SpbtnDel: TSpeedButton;
SpbtnSave: TSpeedButton;
SpbtnCancel: TSpeedButton;
SpbtnExport: TSpeedButton;
SpbtnPrint: TSpeedButton;
SpbtnFirst: TSpeedButton;
SpbtnPrivor: TSpeedButton;
SpbtnNext: TSpeedButton;
SpbtnLast: TSpeedButton;
SpbtnExit: TSpeedButton;
Panel7: TPanel;
SpbtnFind: TSpeedButton;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
dxTree: TdxTreeList;
PopupMenu3: TPopupMenu;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
procedure TbtExitClick(Sender: TObject);
procedure ActTrvVisibleExecute(Sender: TObject);
procedure SpbtnExitClick(Sender: TObject);
procedure SpbtnAddClick(Sender: TObject);
procedure SpbtnEditClick(Sender: TObject);
procedure SpbtnSaveClick(Sender: TObject);
procedure SpbtnCancelClick(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure dxTreeChangeNode(Sender: TObject; OldNode,
Node: TdxTreeListNode);
procedure N3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
private
procedure PFxGridSetFocus(iEditClass: Integer);
{ Private declarations }
public
{用于绑定控件}
GridControl:Array of TGridColCon;
{ Public declarations }
end;
var
FrmTopHN: TFrmTopHN;
implementation
uses uFuntionSys;
{$R *.DFM}
procedure TFrmTopHN.TbtExitClick(Sender: TObject);
begin
inherited;
Self.Close;
end;
procedure TFrmTopHN.ActTrvVisibleExecute(Sender: TObject);
begin
inherited;
if FISSecondSend(10) then Exit;
if PnlTrv.Width >=10 then PnlTrv.Width:=1
else PnlTrv.Width:=175;
end;
procedure TFrmTopHN.SpbtnExitClick(Sender: TObject);
begin
inherited;
Close;
end;
{*******************************************************************************
* 表格控件的焦点设置
* iEditClass=1 Add 2 Edit 3 Delete 4 保存 0 Cancle
*******************************************************************************}
procedure TFrmTopHN.PFxGridSetFocus(iEditClass: Integer);
begin
if iEditClass = 1 then begin
SpbtnAdd.Down:=True;
SpbtnRefresh.Enabled:=False;
SpbtnAdd.Enabled:=False;
SpbtnEdit.Enabled:=False;
SpbtnSave.Enabled:=True;
SpbtnCancel.Enabled:=True;
PnlTrv.Enabled:=False;
SpbtnSave.Down:=False;
SpbtnCancel.Down:=False;
end;
if iEditClass = 2 then begin
SpbtnEdit.Down:=True;
SpbtnRefresh.Enabled:=False;
SpbtnAdd.Enabled:=False;
SpbtnEdit.Enabled:=False;
SpbtnSave.Enabled:=True;
SpbtnCancel.Enabled:=True;
PnlTrv.Enabled:=False;
SpbtnSave.Down:=False;
SpbtnCancel.Down:=False;
end;
if iEditClass= 3 then begin
//
end;
if iEditClass =4 then begin
SpbtnRefresh.Enabled:=True;
SpbtnAdd.Enabled:=True;
SpbtnEdit.Enabled:=True;
SpbtnSave.Enabled:=False;
SpbtnCancel.Enabled:=False;
PnlTrv.Enabled:=True;
SpbtnAdd.Down:=False;
SpbtnEdit.Down:=False;
SpbtnSave.Down:=True;
SpbtnCancel.Down:=True;
end;
if iEditClass = 0 then begin
SpbtnRefresh.Enabled:=True;
SpbtnAdd.Enabled:=True;
SpbtnEdit.Enabled:=True;
SpbtnSave.Enabled:=False;
SpbtnCancel.Enabled:=False;
PnlTrv.Enabled:=True;
SpbtnAdd.Down:=False;
SpbtnEdit.Down:=False;
SpbtnSave.Down:=True;
SpbtnCancel.Down:=True;
end;
end;
procedure TFrmTopHN.SpbtnAddClick(Sender: TObject);
begin
PFxGridSetFocus(1);
end;
procedure TFrmTopHN.SpbtnEditClick(Sender: TObject);
begin
PFxGridSetFocus(2);
end;
procedure TFrmTopHN.SpbtnSaveClick(Sender: TObject);
begin
PFxGridSetFocus(4);
end;
procedure TFrmTopHN.SpbtnCancelClick(Sender: TObject);
begin
PFxGridSetFocus(0);
end;
{ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 全部展开 dxTree中数据
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo}
procedure TFrmTopHN.N17Click(Sender: TObject);
var
xTemp:TdxTreeListNode;
begin
xTemp:=dxTree.Items[0];
xTemp.Expand(True);
while (True) do begin
if xTemp = dxTree.LastNode then Exit;
xTemp.Expand(True);
end;
end;
{ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 全部收缩 dxTree中数据
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo}
procedure TFrmTopHN.N18Click(Sender: TObject);
var
xTemp:TdxTreeListNode;
begin
xTemp:=dxTree.Items[0];
xTemp.Expand(False);
while (True) do begin
if xTemp = dxTree.LastNode then Exit;
xTemp.Expand(False);
end;
end;
procedure TFrmTopHN.dxTreeChangeNode(Sender: TObject; OldNode,
Node: TdxTreeListNode);
begin
Node.Expand(True);
end;
procedure TFrmTopHN.N3Click(Sender: TObject);
var
clr:Tcolor;
begin
clr:=dxTree.Color;
if FSetGridAndTreeColor(clr,nil) then dxTree.Color:=clr;
end;
procedure TFrmTopHN.FormShow(Sender: TObject);
begin
inherited;
PSetOrderPnlBtn(PnlToolBar);
end;
procedure TFrmTopHN.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
inherited;
//快截见问题//20030815 Add
{*******************************************}
if Msg.CharCode = 27 then begin
if not SpbtnCancel.Visible then Exit;
if not SpbtnCancel.Enabled then Exit;
if SpbtnCancel.Down then Exit;
if Pos('Esc',SpbtnCancel.Hint) <= 0 then Exit;
SpbtnCancel.OnClick(nil);
end;
{*******************************************}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -