📄 un_formfactory.pas
字号:
unit Un_FormFactory;
interface
uses
Classes, Variants, Forms, SysUtils, Un_EntityClass, ActnList;
type
TEntityFormFactory=class
private
function FindForm(AEntityName: String): TForm;
public
class function Instance: TEntityFormFactory;
procedure CreateForm(EntityName: String);
end;
implementation
uses
main, EntityTemplet, EntityTempletExtendFrm;
var
FEntityFormFactory: TEntityFormFactory;
{ TEntityFormFactory }
procedure TEntityFormFactory.CreateForm(
EntityName: String);
var
AForm: TForm;
begin
AForm:= FindForm(EntityName);
if AForm=nil then begin
AForm:= TDynamicEntityForm.Create(Application, EntityName);
AForm.Hint:= EntityName;
//AForm.WindowState:= wsMaximized;
AForm.Top:= MainForm.Top+1;
AForm.Left:= MainForm.Left+1;
AForm.Width:= MainForm.ClientWidth-40;
AForm.Height:= MainForm.ClientHeight-60;
AForm.Position:= poDesktopCenter;
AForm.WindowState:= wsNormal;
AForm.FormStyle:= fsMDIChild;
end;
if AForm.WindowState=wsMinimized then
AForm.WindowState:= wsNormal;
AForm.Show;
end;
function TEntityFormFactory.FindForm(AEntityName: String): TForm;
var
i: Integer;
begin
Result:= nil;
with MainForm do begin
for i:= 0 to MDIChildCount-1 do begin
if MDIChildren[i].Hint= AEntityName then begin
Result:= MDIChildren[i];
Break;
end;
end;
end;
end;
class function TEntityFormFactory.Instance: TEntityFormFactory;
begin
if FEntityFormFactory=nil then
FEntityFormFactory:= TEntityFormFactory.Create;
Result:= FEntityFormFactory;
end;
initialization
FEntityFormFactory:= nil;
finalization
if FEntityFormFactory<>nil then
FreeAndNil(FEntityFormFactory);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -