📄 baseeditfrm.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 + -