expertcad/SRC/Main/U_NormBase.pas
2025-05-12 10:07:51 +03:00

95 lines
2.5 KiB
ObjectPascal

unit U_NormBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TF_NormBase = class(TForm)
procedure FormStartDock(Sender: TObject; var DragObject: TDragDockObject);
procedure FormCreate(Sender: TObject);
procedure FormEndDock(Sender, Target: TObject; X, Y: Integer);
procedure FormPaint(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Docking: Bool;
end;
var
F_NormBase: TF_NormBase;
implementation
uses USCS_Main, U_CAD;
{$R *.dfm}
procedure TF_NormBase.FormStartDock(Sender: TObject;
var DragObject: TDragDockObject);
begin
Docking := True;
end;
procedure TF_NormBase.FormCreate(Sender: TObject);
begin
Docking := False;
end;
procedure TF_NormBase.FormEndDock(Sender, Target: TObject; X, Y: Integer);
begin
Docking := False;
if TForm(Sender).Left > Screen.Width -100 then
TForm(Sender).Left := TForm(Sender).Left - 50;
if TForm(Sender).Top > Screen.Height -100 then
TForm(Sender).Top := TForm(Sender).Top - 50;
end;
procedure TF_NormBase.FormPaint(Sender: TObject);
begin
if TForm(Sender).Left > Screen.Width -100 then
TForm(Sender).Left := TForm(Sender).Left - 50;
if TForm(Sender).Top > Screen.Height -100 then
TForm(Sender).Top := TForm(Sender).Top - 50;
end;
procedure TF_NormBase.FormClose(Sender: TObject; var Action: TCloseAction);
var
ParentPanel: TComponent;
begin
FSCS_Main.aViewNormBase.Checked := false;
ParentPanel := TForm(Sender).GetParentComponent;
if CurrActiveForm = nil then
Exit;
if ParentPanel = TF_CAD(CurrActiveForm).pDock1 then
TF_CAD(CurrActiveForm).CountDock1 := TF_CAD(CurrActiveForm).CountDock1 - 1;
if ParentPanel = TF_CAD(CurrActiveForm).pDock2 then
TF_CAD(CurrActiveForm).CountDock2 := TF_CAD(CurrActiveForm).CountDock2 - 1;
if TF_CAD(CurrActiveForm).CountDock1 = 0 then
begin
TF_CAD(CurrActiveForm).pDock1.Width := 1;
TF_CAD(CurrActiveForm).sDiv1.Visible := False;
end;
if TF_CAD(CurrActiveForm).CountDock2 = 0 then
begin
TF_CAD(CurrActiveForm).sDiv2.Visible := False;
TF_CAD(CurrActiveForm).pDock2.Width := 1;
end;
end;
procedure TF_NormBase.FormShow(Sender: TObject);
begin
FSCS_Main.aViewNormBase.Checked := true;
// Left := 800;
// Top := 40;
end;
end.