mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-11 17:25:39 +02:00
138 lines
3.8 KiB
ObjectPascal
138 lines
3.8 KiB
ObjectPascal
unit U_Projectmanager;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, ExtCtrls, StdCtrls, ComCtrls,
|
||
PCPanel, PCDrawBox, PCDrawing, PowerCad, pcMsbar,
|
||
XP_Panel, ToolWin, PCTypesUtils, DrawObjects, Menus, DlgBase, ExtDlgs,
|
||
PCLayerDlg, OleCtnrs, Buttons, PCgui, GuiStrings, DrawEngine, U_ESCadClasess;
|
||
|
||
|
||
type
|
||
TF_ProjectManager = class(TForm)
|
||
tvPrjManager: TTreeView;
|
||
procedure FormStartDock(Sender: TObject; var DragObject: TDragDockObject);
|
||
procedure FormEndDock(Sender, Target: TObject; X, Y: Integer);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure FormPaint(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure tvPrjManagerClick(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
public
|
||
Docking: Bool;
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
F_ProjectManager: TF_ProjectManager;
|
||
|
||
implementation
|
||
|
||
uses U_Cad, U_Main, USCS_Main, U_Common;
|
||
{$R *.dfm}
|
||
|
||
procedure TF_ProjectManager.FormStartDock(Sender: TObject;
|
||
var DragObject: TDragDockObject);
|
||
begin
|
||
Docking := True;
|
||
end;
|
||
|
||
procedure TF_ProjectManager.FormEndDock(Sender, Target: TObject; X,
|
||
Y: Integer);
|
||
begin
|
||
Docking := False;
|
||
FSCS_Main.PDock1.DockSite := true;
|
||
FSCS_Main.PDock2.DockSite := true;
|
||
FSCS_Main.cbMainPanel.DockSite := true;
|
||
F_Main.Panel_Main.DockSite := true;
|
||
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_ProjectManager.FormCreate(Sender: TObject);
|
||
var
|
||
Node, SubNode: TTreeNode;
|
||
begin
|
||
Docking := False;
|
||
end;
|
||
|
||
procedure TF_ProjectManager.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_ProjectManager.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
var
|
||
ParentPanel: TComponent;
|
||
begin
|
||
FSCS_Main.aViewProjectManager.Checked := false;
|
||
ParentPanel := TForm(Sender).GetParentComponent;
|
||
|
||
if ParentPanel = FSCS_Main.pDock1 then
|
||
FSCS_Main.CountDock1 := FSCS_Main.CountDock1 - 1;
|
||
if ParentPanel = FSCS_Main.pDock2 then
|
||
FSCS_Main.CountDock2 := FSCS_Main.CountDock2 - 1;
|
||
|
||
if FSCS_Main.CountDock1 = 0 then
|
||
begin
|
||
FSCS_Main.pDock1.Width := 1;
|
||
FSCS_Main.sDiv1.Visible := False;
|
||
end;
|
||
if FSCS_Main.CountDock2 = 0 then
|
||
begin
|
||
FSCS_Main.sDiv2.Visible := False;
|
||
FSCS_Main.pDock2.Width := 1;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ProjectManager.FormShow(Sender: TObject);
|
||
begin
|
||
FSCS_Main.aViewProjectManager.Checked := true;
|
||
end;
|
||
|
||
procedure TF_ProjectManager.tvPrjManagerClick(Sender: TObject);
|
||
var
|
||
Parent: TTreeNode;
|
||
CurNode: TTreeNode;
|
||
PageIndex: integer;
|
||
CurPCad: TPowerCad;
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (tvPrjManager.Selected <> nil) then
|
||
begin
|
||
PageIndex := 0;
|
||
SubNode := tvPrjManager.Selected;
|
||
Parent := SubNode.Parent;
|
||
if Parent = nil then
|
||
Exit;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PageIndex
|
||
CurNode := Parent.getFirstChild;
|
||
for PageIndex := 0 to Parent.Count - 1 do
|
||
begin
|
||
if CurNode = SubNode then
|
||
break;
|
||
CurNode := CurNode.getNextSibling;
|
||
end;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
FSCS_Main.pageCADList.ActivePageIndex := PageIndex;
|
||
tvPrjManager.Selected := SubNode;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
FSCS_Main.nWindow[PageIndex + 3].Checked := true;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
PageIndex := FSCS_Main.pageCADList.ActivePageIndex;
|
||
CurPCad := CADList.Items[PageIndex];
|
||
CurPCad.BringToFront;
|
||
end;
|
||
end;
|
||
|
||
end.
|