📄 ufrmtopca.~pas
字号:
{*******************************************************************************
* 用于树不托动的模板 业务模块经常用到 特别是单据类
* 风格:工具条+树+表格
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 改进后的窗体 主要是界面上 去掉了标题栏
* 工具条该为 Pannle 制作 更加灵活的 按钮 有 SpeetBtn
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 标准工具条 Height=30
* 工具条上按钮高 = 25 宽=30 所以如果 PnlTOP 高 = 30 就刚好显示工具条
* 如果 PnlTOP 高 > 30 就可以放 其他控件 制作其他单据等
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 界面经过改动 已经很完整了 很适用 工作去很大
* 用Panel 代替了工具条 更加 灵活实用
* 200303021 符林
*ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
* 这个积累根据 FrmTopCA 演变而来的 主要是很多窗口上有多个表格
* 所以这个窗口可以很 FramGrid 混合使用 20030402
*******************************************************************************}
unit uFrmTopCA;
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
TFrmTopCA = class(TFrmTop)
PnlTop: TPanel;
IMGTree: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N5: TMenuItem;
N9: TMenuItem;
PopupMenu2: TPopupMenu;
N4: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
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;
ActCltrA: TAction;
ActCltrE: TAction;
ActCltrS: TAction;
ActCltrD: TAction;
procedure TbtExitClick(Sender: TObject);
procedure SpbtnExitClick(Sender: TObject);
procedure SpbtnAddClick(Sender: TObject);
procedure SpbtnEditClick(Sender: TObject);
procedure SpbtnSaveClick(Sender: TObject);
procedure SpbtnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ActCltrAExecute(Sender: TObject);
procedure ActCltrDExecute(Sender: TObject);
procedure ActCltrEExecute(Sender: TObject);
procedure ActCltrSExecute(Sender: TObject);
procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
private
procedure PFxGridSetFocus(iEditClass: Integer);
{ Private declarations }
public
{用于绑定控件}
GridControl:Array of TGridColCon;
iEditSate:Integer;//用语标识 添加 更改的区别
{ Public declarations }
end;
var
FrmTopCA: TFrmTopCA;
implementation
uses uFuntionSys;
{$R *.DFM}
procedure TFrmTopCA.TbtExitClick(Sender: TObject);
begin
inherited;
Self.Close;
end;
procedure TFrmTopCA.SpbtnExitClick(Sender: TObject);
begin
inherited;
Close;
end;
{*******************************************************************************
* 表格控件的焦点设置
* iEditClass=1 Add 2 Edit 3 Delete 4 保存 0 Cancle
*******************************************************************************}
procedure TFrmTopCA.PFxGridSetFocus(iEditClass: Integer);
begin
iEditSate:=iEditClass;
if iEditClass = 1 then begin
SpbtnAdd.Down:=True;
SpbtnRefresh.Enabled:=False;
SpbtnAdd.Enabled:=False;
SpbtnEdit.Enabled:=False;
SpbtnSave.Enabled:=True;
SpbtnCancel.Enabled:=True;
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;
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;
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;
SpbtnAdd.Down:=False;
SpbtnEdit.Down:=False;
SpbtnSave.Down:=True;
SpbtnCancel.Down:=True;
end;
end;
procedure TFrmTopCA.SpbtnAddClick(Sender: TObject);
begin
PFxGridSetFocus(1);
end;
procedure TFrmTopCA.SpbtnEditClick(Sender: TObject);
begin
PFxGridSetFocus(2);
end;
procedure TFrmTopCA.SpbtnSaveClick(Sender: TObject);
begin
PFxGridSetFocus(4);
end;
procedure TFrmTopCA.SpbtnCancelClick(Sender: TObject);
begin
PFxGridSetFocus(0);
end;
procedure TFrmTopCA.FormShow(Sender: TObject);
begin
inherited;
PSetOrderPnlBtn(PnlToolBar);
PSetToolBarStyle(PnlToolBar,bSYSShowBtnCaption);
SpbtnSave.Enabled:=False; //Add 20030811
SpbtnCancel.Enabled:=False;
{**设置鼠标}
Self.PnlToolBar.Cursor:=1;
{
if FChangeCursor <> 0 then begin
Screen.Cursors[1]:=FChangeCursor;//不放在这儿速度其慢
Self.PnlToolBar.Cursor:=1;
end;}
end;
procedure TFrmTopCA.ActCltrAExecute(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 TFrmTopCA.ActCltrDExecute(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 TFrmTopCA.ActCltrEExecute(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 TFrmTopCA.ActCltrSExecute(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 TFrmTopCA.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 + -