⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmtophn.pas

📁 一个会议签到系统
💻 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 + -