📄 ufrmtopcb.pas
字号:
{*******************************************************************************
* 用于树不托动的模板 业务模块经常用到 特别是单据类
* 风格:工具条+树+表格
*---------------------200303021-------------------------------------------------
* 改进后的窗体 主要是界面上 去掉了标题栏
* 工具条该为 Pannle 制作 更加灵活的 按钮 有 SpeetBtn
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 标准工具条 Height=30
* 工具条上按钮高 = 25 宽=30 所以如果 PnlTOP 高 = 30 就刚好显示工具条
* 如果 PnlTOP 高 > 30 就可以放 其他控件 制作其他单据等
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 界面经过改动 已经很完整了 很适用 工作去很大
* 用Panel 代替了工具条 更加 灵活实用
* 200303021 符林
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 这个积累根据 FrmTopCA 演变而来的 主要是很多窗口上有多个表格
* 所以这个窗口可以很 FramGrid 混合使用 20030402
*******************************************************************************}
unit uFrmTopCB;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
uFrmTop, AppEvnts, ActnList, ExtCtrls, Buttons, ImgList, ComCtrls,
ToolWin, OleCtrls, MSFlexGridLib_TLB, StdCtrls,uDataSys, Menus;
type
TFrmTopCB = class(TFrmTop)
PnlTop: TPanel;
PnlTrv: TPanel;
PnlTrvBiaoTi: TPanel;
SpeedButton2: TSpeedButton;
Panel5: TPanel;
SpeedButton1: TSpeedButton;
PnlGrid: TPanel;
Splitter2: TSplitter;
TrvMenu: TTreeView;
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;
PopupMenu3: TPopupMenu;
N16: TMenuItem;
N1: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ActCtrlA: TAction;
ActCtrlD: TAction;
ActCtrlE: TAction;
ActCtrlS: TAction;
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 N3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure ActCtrlAExecute(Sender: TObject);
procedure ActCtrlDExecute(Sender: TObject);
procedure ActCtrlEExecute(Sender: TObject);
procedure ActCtrlSExecute(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
FrmTopCB: TFrmTopCB;
implementation
uses uFuntionSys;
{$R *.DFM}
procedure TFrmTopCB.TbtExitClick(Sender: TObject);
begin
inherited;
Self.Close;
end;
procedure TFrmTopCB.ActTrvVisibleExecute(Sender: TObject);
begin
inherited;
if FISSecondSend(10) then Exit;
if PnlTrv.Width >=10 then PnlTrv.Width:=1
else PnlTrv.Width:=175;
end;
procedure TFrmTopCB.SpbtnExitClick(Sender: TObject);
begin
inherited;
Close;
end;
{*******************************************************************************
* 表格控件的焦点设置
* iEditClass=1 Add 2 Edit 3 Delete 4 保存 0 Cancle
*******************************************************************************}
procedure TFrmTopCB.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 TFrmTopCB.SpbtnAddClick(Sender: TObject);
begin
PFxGridSetFocus(1);
end;
procedure TFrmTopCB.SpbtnEditClick(Sender: TObject);
begin
PFxGridSetFocus(2);
end;
procedure TFrmTopCB.SpbtnSaveClick(Sender: TObject);
begin
PFxGridSetFocus(4);
end;
procedure TFrmTopCB.SpbtnCancelClick(Sender: TObject);
begin
PFxGridSetFocus(0);
end;
procedure TFrmTopCB.N3Click(Sender: TObject);
var
clr:Tcolor;
begin
clr:=TrvMenu.Color;
if FSetGridAndTreeColor(clr,nil) then TrvMenu.Color:=clr;
end;
procedure TFrmTopCB.FormShow(Sender: TObject);
begin
inherited;
PSetOrderPnlBtn(PnlToolBar);
PSetToolBarStyle(PnlToolBar,bSYSShowBtnCaption);
SpbtnSave.Enabled:=False; //Add 20030811
SpbtnCancel.Enabled:=False;
{**设置鼠标***}
Self.PnlToolBar.Cursor:=1;
TrvMenu.Align:=alClient;
end;
procedure TFrmTopCB.N17Click(Sender: TObject);
begin
inherited;
TrvMenu.FullExpand;
end;
procedure TFrmTopCB.N18Click(Sender: TObject);
begin
inherited;
TrvMenu.FullCollapse;
end;
procedure TFrmTopCB.ActCtrlAExecute(Sender: TObject);
var
Str:String;
begin
Str:=SpbtnAdd.Hint;
if not SpbtnAdd.Visible then Exit;
if not SpbtnAdd.Enabled then Exit;
if SpbtnAdd.Down then Exit;
if Pos('Ctrl+A',Str) <= 0 then Exit;
SpbtnAdd.OnClick(Sender);
end;
procedure TFrmTopCB.ActCtrlDExecute(Sender: TObject);
var
Str:String;
begin
Str:=SpbtnDel.Hint;
if not SpbtnDel.Visible then Exit;
if not SpbtnDel.Enabled then Exit;
if SpbtnDel.Down then Exit;
if Pos('Ctrl+D',Str) <= 0 then Exit;
SpbtnDel.OnClick(Sender);
end;
procedure TFrmTopCB.ActCtrlEExecute(Sender: TObject);
var
Str:String;
begin
Str:=SpbtnEdit.Hint;
if not SpbtnEdit.Visible then Exit;
if not SpbtnEdit.Enabled then Exit;
if SpbtnEdit.Down then Exit;
if Pos('Ctrl+E',Str) <= 0 then Exit;
SpbtnEdit.OnClick(Sender);
end;
procedure TFrmTopCB.ActCtrlSExecute(Sender: TObject);
var
Str:String;
begin
Str:=SpbtnSave.Hint;
if not SpbtnSave.Visible then Exit;
if not SpbtnSave.Enabled then Exit;
if SpbtnSave.Down then Exit;
if Pos('Ctrl+S',Str) <= 0 then Exit;
SpbtnSave.OnClick(Sender);
end;
procedure TFrmTopCB.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 + -