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

📄 baseeditfrm.pas

📁 一个电力部门的催缴费用系统
💻 PAS
字号:
unit BaseEditFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ActnList, ImgList, ComCtrls, ExtCtrls, TB97Tlbr, TB97Ctls, TB97, Grids,
  DBGrids, RXDBCtrl, wenActionPass;

type
  TForm_BaseEdit = class(TForm)
    Dock971: TDock97;
    tbar97_Self: TToolbar97;
    tbtn97_Const_Edit: TToolbarButton97;
    tbtn97_Const_New: TToolbarButton97;
    tbtn97_Const_Cancel: TToolbarButton97;
    tbtn97_Const_Delete: TToolbarButton97;
    tbtn97_Const_Save: TToolbarButton97;
    ToolbarSep971: TToolbarSep97;
    tbtn97_Const_Quit: TToolbarButton97;
    sbx_Top: TScrollBox;
    pnl_Top: TPanel;
    Sta_Main: TStatusBar;
    il_MainEn: TImageList;
    Splitter1: TSplitter;
    rxdbg_Main: TRxDBGrid;
    pnl_TopChild: TPanel;
    atnlst_Main: TActionList;
    actn_Const_New: TAction;
    actn_Const_Edit: TAction;
    actn_Const_Cancel: TAction;
    actn_Const_Save: TAction;
    actn_Const_Delete: TAction;
    actn_Const_Close: TAction;
    actn_Const_Refresh: TAction;
    procedure actn_Const_CloseExecute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure actn_Const_NewExecute(Sender: TObject);
    procedure sbx_TopResize(Sender: TObject);
    procedure actn_Const_EditExecute(Sender: TObject);
    procedure actn_Const_CancelExecute(Sender: TObject);
    procedure actn_Const_SaveExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure rxdbg_MainKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure actn_Const_DeleteExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    FAsChild: Boolean;
    FTempParent: TWinControl;

    FFormEditStatus:Boolean;
    procedure SetFormEditStatus(Sender: boolean);
  public
    { Public declarations }
    property FormEditStatus : Boolean read FFormEditStatus write SetFormEditStatus;
    constructor Create(AOwner: TComponent; AParent: TWinControl);reintroduce; overload;
  end;

var
  Form_BaseEdit: TForm_BaseEdit;

implementation

{$R *.DFM}

constructor TForm_BaseEdit.Create(AOwner: TComponent; AParent: TWinControl);
begin
  FAsChild := True;
  FTempParent := aParent;
  
  inherited Create(AOwner);
end;

procedure TForm_BaseEdit.SetFormEditStatus(Sender:Boolean);
begin
   FFormEditStatus := Sender;
   if Sender then
   begin
     //waps_Const.PassMask:='001101'
     actn_Const_New.Enabled :=False;
     actn_Const_Edit.Enabled :=False;
     actn_Const_Cancel.Enabled :=True;
     actn_Const_Save.Enabled :=True;
     actn_Const_Delete.Enabled :=False;
     actn_Const_Close.Enabled :=True;
   end else
   begin
     //waps_Const.PassMask:='110011';
     actn_Const_New.Enabled :=True;
     actn_Const_Edit.Enabled :=True;
     actn_Const_Cancel.Enabled :=False;
     actn_Const_Save.Enabled :=False;
     actn_Const_Delete.Enabled :=True;
     actn_Const_Close.Enabled :=True;
     tbtn97_Const_Delete.Enabled :=True;

   end;
end;
procedure TForm_BaseEdit.actn_Const_CloseExecute(Sender: TObject);
begin
    Close;
end;

procedure TForm_BaseEdit.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  If  FormEditStatus then
  begin
    if Application.MessageBox('是否退出?','提示',MB_YESNO+32) = mrYes then
    begin
      Actn_Const_Cancel.Execute;
      CanClose := true;
    end else
      Abort;
  end else
    CanClose := true;
end;

procedure TForm_BaseEdit.actn_Const_NewExecute(Sender: TObject);
begin
    FormEditStatus:=True;
    if (Active) and (pnl_TopChild.Focused) then pnl_TopChild.SetFocus ;
    rxdbg_Main.Enabled:=False;
    rxdbg_Main.Refresh ;
end;

procedure TForm_BaseEdit.actn_Const_EditExecute(Sender: TObject);
begin
    FormEditStatus:=True;
    if (Active) and (pnl_TopChild.Focused) then pnl_TopChild.SetFocus ;
    rxdbg_Main.Enabled:=False;
end;

procedure TForm_BaseEdit.sbx_TopResize(Sender: TObject);
begin
    pnl_Top.Width :=sbx_Top.Width -3;
    if sbx_Top.Width < pnl_TopChild.Width +15 then
    begin
        sbx_Top.AutoScroll :=True;
        sbx_Top.HorzScrollBar.Visible :=True;
    end else
    begin
        sbx_Top.AutoScroll :=False;
        sbx_Top.HorzScrollBar.Visible :=False;
    end;
end;



procedure TForm_BaseEdit.actn_Const_CancelExecute(Sender: TObject);
begin
    FormEditStatus:=False;
    if (Active) and (pnl_TopChild.Focused) then pnl_TopChild.SetFocus ;
    rxdbg_Main.Enabled:=True;
end;

procedure TForm_BaseEdit.actn_Const_SaveExecute(Sender: TObject);
begin
    FormEditStatus:=False;
    rxdbg_Main.Enabled :=True;
end;

procedure TForm_BaseEdit.FormCreate(Sender: TObject);
begin
  if FAsChild then
  begin
    BorderStyle :=bsnone;
    parent:=FTempParent;
    Align :=alclient;
  end;
end;

procedure TForm_BaseEdit.FormActivate(Sender: TObject);
begin
    FormEditStatus := FormEditStatus;
    tbar97_Self.Visible:=true;
end;

procedure TForm_BaseEdit.FormDeactivate(Sender: TObject);
begin
  tbar97_Self.Visible:=False;
end;

procedure TForm_BaseEdit.rxdbg_MainKeyPress(Sender: TObject;
  var Key: Char);
var
    i,j:integer;
begin
    if Key=#13 then
    begin
        i:=rxdbg_Main.FieldCount ;
        j:=rxdbg_Main.SelectedIndex ;
        if j<i then
            rxdbg_Main.SelectedField:=rxdbg_Main.Fields[j+1]
        else
            rxdbg_Main.SelectedField:=rxdbg_Main.Fields[1];
    end;
end;

procedure TForm_BaseEdit.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if pnl_Topchild.Enabled=True then
       if Key=#13 then
        SelectNext(ActiveControl,True,True);

end;

procedure TForm_BaseEdit.actn_Const_DeleteExecute(Sender: TObject);
begin
    Beep;
end;

procedure TForm_BaseEdit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=Cafree;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -