Compare commits

..

No commits in common. "d7204c68985d8c79e5298634086feaeb3c1380d9" and "30428ce2d52700bd421b1674a7ef5646a32690c1" have entirely different histories.

31 changed files with 541 additions and 3281 deletions

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
# Delphi # Delphi
__history/ __history/
*.~* *.~*
*.ddp
*.scc *.scc
*.pdf *.pdf
*.dcu *.dcu

View File

@ -1,17 +0,0 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_CodePage>1251</DCC_CodePage>
<BRCC_IncludePath>C:\Projects\СКС\POWERCAD30\UNITS;$(BRCC_IncludePath)</BRCC_IncludePath>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_IntegerOverflowCheck>false</DCC_IntegerOverflowCheck>
<DCC_DebugInformation>true</DCC_DebugInformation>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>OptionSet</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality/>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
</Project>

View File

@ -1,135 +0,0 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=0
J=1
K=0
L=1
M=0
N=1
O=0
P=1
Q=0
R=0
S=0
T=0
U=1
V=1
W=0
X=1
Y=1
Z=1
ShowHints=0
ShowWarnings=0
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=D:\Program Files\Ýêñïåðò-ÑÊÑ 1.8.0
UnitOutputDir=DCU
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=$(DELPHI)\Lib\Debug
Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;dsnap;tee;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;ip4000clientvcl6;ip4000v6;db211d6r;FR6;cds;vcldbx;visualdbclx;dsnapcrba;dsnapcon;dbexpress;dss;webdsnap;bdecds;dbxcds;soaprtl;inetdb;websnap;ibxpress;indy;dclOffice2k;qrpt;nmfast;teeqr;ip4000word2000vcl6;elmlgnD6;elpackD6;elpkdbD6;elpproD6;elmltgD6;visualclx;Rz30Ctls60;Rz30DBCtls60;xmlide
Conditionals=3D
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1049
CodePage=1251
[Version Info Keys]
CompanyName=ÝêñïåðòÑîôò
FileDescription=
FileVersion=1.7.1.1827
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=Ýêñïåðò-ÑÊÑ
ProductVersion=2.3.0
Comments=
[Excluded Packages]
c:\program files\borland\delphi6\Bin\dclclxdb60.bpl=Borland CLX Database Components
C:\Program Files\Borland\Delphi6\Bin\dclclxstd60.bpl=Borland CLX Standard Components
c:\program files\borland\delphi6\Bin\dclite60.bpl=Borland Integrated Translation Environment
c:\program files\borland\delphi6\Bin\dclsoap60.bpl=Borland SOAP Components
D:\Program Files\CADE Control\Tutorial\Delphi\CADEPackage.bpl=CADE Control Component
C:\Program Files\Borland\Delphi6\Bin\dclaxserver60.bpl=Microsoft Office 97 Sample Automation Server Wrapper Components
D:\Program Files\KeverIT\EzPlanIT\Bpl\EzBasicDs_D6.bpl=EzPlan-IT's basic components
D:\Program Files\KeverIT\EzPlanIT\Bpl\EzBasic_D6.bpl=EzPlan-IT's basic components
D:\Program Files\KeverIT\EzPlanIT\Bpl\EZPlanitDs_D6.bpl=EzPlan-IT's main components
D:\Program Files\KeverIT\EzPlanIT\Bpl\EZPlanIT_D6.bpl=EzPlan-IT's main components
[HistoryLists\hlConditionals]
Count=30
Item0=3D
Item1=FINAL_SCS; SCS_PE; 3D
Item2=FINAL_SCS; SCS_PE; TRIAL_SCS; 3D
Item3=FINAL_SCS; TRIAL_SCS; 3D; PROCAT_SCS
Item4=FINAL_SCS; TELECOM; 3D
Item5=FINAL_SCS; TELECOM; FLASH_SCS; 3D
Item6=FINAL_SCS; TELECOM; TRIAL_SCS; 3D
Item7=FINAL_SCS; TELECOM; SCS_RF; 3D
Item8=FINAL_SCS; TELECOM; SCS_RF; FLASH_SCS; 3D
Item9=FINAL_SCS; TELECOM; TRIAL_SCS; SCS_RF; 3D
Item10=FINAL_SCS; TELECOM; TRIAL_SCS; SCS_RF; 3D; PROCAT_SCS
Item11=FINAL_SCS; TRIAL_SCS; SCS_RF; 3D; PROCAT_SCS
Item12=FINAL_SCS; SCS_RF; 3D
Item13=FINAL_SCS; SCS_RF; FLASH_SCS; 3D
Item14=FINAL_SCS; TRIAL_SCS; SCS_RF; 3D
Item15=FINAL_SCS; FLASH_SCS; 3D
Item16=FINAL_SCS;3D
Item17=FINAL_SCS; TRIAL_SCS; 3D
Item18=FINAL_SCS; SCS_PE; TRIAL_SCS; 3D; PROCAT_SCS; SCS_PANDUIT
Item19=3D; ES_GRAPH_SC
Item20=FINAL_SCS; 3D; ES_GRAPH_SC
Item21=FINAL_SCS; SCS_SPA; 3D
Item22=SCS_SPA; 3D
Item23=FINAL_SCS; 3D
Item24=FINAL_SCS;
Item25=FINAL_SCS; 3D; MSWindows
Item26=FINAL_SCS
Item27=FINAL_SCS; SCS_RF; FLASH_SCS
Item28=FINAL_SCS; SCS_RF
Item29=FINAL_SCS; FLASH_SCS
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=1
Item0=$(DELPHI)\Lib\Debug
[HistoryLists\hlOutputDirectorry]
Count=1
Item0=..\

View File

@ -1746,7 +1746,6 @@ begin
ConvertCoord(pp2.x,pp2.y,pp2.z); ConvertCoord(pp2.x,pp2.y,pp2.z);
rgn1 := CreateEllipticRgn(Round(pp1.x), Round(pp1.y), Round(pp2.x), Round(pp2.y)); rgn1 := CreateEllipticRgn(Round(pp1.x), Round(pp1.y), Round(pp2.x), Round(pp2.y));
CombineRgn(Rgn, Rgn, Rgn1, RGN_XOR); CombineRgn(Rgn, Rgn, Rgn1, RGN_XOR);
DeleteObject(Rgn1); // Tolik 14/01/2025 --
end; end;
end end
else else

View File

@ -294,6 +294,10 @@ object frm3D: Tfrm3D
FixedDimension = 19 FixedDimension = 19
object TabSheet1: TRzTabSheet object TabSheet1: TRzTabSheet
Caption = #1052#1086#1076#1077#1083#1100 Caption = #1052#1086#1076#1077#1083#1100
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object panObjects: TPanel object panObjects: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -331,11 +335,12 @@ object frm3D: Tfrm3D
TabOrder = 0 TabOrder = 0
TabStyle = tsRoundCorners TabStyle = tsRoundCorners
OnTabClick = pcTreeTabClick OnTabClick = pcTreeTabClick
ExplicitHeight = 21
FixedDimension = 19 FixedDimension = 19
object TabArchModel: TRzTabSheet object TabArchModel: TRzTabSheet
Caption = #1040#1088#1093'. '#1084#1086#1076#1077#1083#1100 Caption = #1040#1088#1093'. '#1084#1086#1076#1077#1083#1100
ExplicitLeft = 0 ExplicitLeft = 0
ExplicitTop = 0 ExplicitTop = 1
ExplicitWidth = 0 ExplicitWidth = 0
ExplicitHeight = 0 ExplicitHeight = 0
object cxGroupBox1: TcxGroupBox object cxGroupBox1: TcxGroupBox
@ -419,10 +424,16 @@ object frm3D: Tfrm3D
000000000000000000000001067200650072006500720065002C000000000000 000000000000000000000001067200650072006500720065002C000000000000
0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072 0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072
007200650072006500} 007200650072006500}
ExplicitWidth = 0
ExplicitHeight = 64
end end
end end
object TabScsModel: TRzTabSheet object TabScsModel: TRzTabSheet
Caption = #1057#1050#1057' '#1084#1086#1076#1077#1083#1100 Caption = #1057#1050#1057' '#1084#1086#1076#1077#1083#1100
ExplicitLeft = 0
ExplicitTop = 1
ExplicitWidth = 0
ExplicitHeight = 0
object cxGroupBox2: TcxGroupBox object cxGroupBox2: TcxGroupBox
Left = 0 Left = 0
Top = 0 Top = 0
@ -504,14 +515,8 @@ object frm3D: Tfrm3D
000000000000000000000001067200650072006500720065002C000000000000 000000000000000000000001067200650072006500720065002C000000000000
0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072 0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072
007200650072006500} 007200650072006500}
end ExplicitWidth = 0
object DuplicateNodeTree: TTreeView ExplicitHeight = 64
Left = 160
Top = 80
Width = 121
Height = 97
Indent = 19
TabOrder = 2
end end
end end
end end
@ -531,7 +536,7 @@ object frm3D: Tfrm3D
ExplicitLeft = 0 ExplicitLeft = 0
ExplicitTop = 0 ExplicitTop = 0
ExplicitWidth = 0 ExplicitWidth = 0
ExplicitHeight = 0 ExplicitHeight = 574
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -3405,7 +3410,7 @@ object frm3D: Tfrm3D
Left = 100 Left = 100
Top = 57 Top = 57
Bitmap = { Bitmap = {
494C01013A00B0006C0210001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C01013A00B000140210001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000F0000000010020000000000000F0 000000000000360000002800000040000000F0000000010020000000000000F0
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,22 +0,0 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_ExeOutput>C:\Program Files\Эксперт-СКС 1.8.0\</DCC_ExeOutput>
<DCC_DebugDCUs>false</DCC_DebugDCUs>
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>SCS_RF;PROCAT_SCS;FINAL_SCS;$(DCC_Define)</DCC_Define>
<DCC_CodePage>1251</DCC_CodePage>
<DCC_IntegerOverflowCheck>false</DCC_IntegerOverflowCheck>
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
<DCC_ImportedDataReferences>false</DCC_ImportedDataReferences>
<DCC_DebugInfoInExe>false</DCC_DebugInfoInExe>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>OptionSet</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality/>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
</Project>

View File

@ -356,8 +356,6 @@ type
F3D_Length: Double; F3D_Length: Double;
FUse3DSize: Boolean; FUse3DSize: Boolean;
HasPipeElements: Boolean; // äëÿ ïóñòîãî êîííåêòîðà, åñëè íà íåì áóäóò ðèñîâàòüñÿ ïîâîðîòû òðóá, ãîôðû è ò.ï HasPipeElements: Boolean; // äëÿ ïóñòîãî êîííåêòîðà, åñëè íà íåì áóäóò ðèñîâàòüñÿ ïîâîðîòû òðóá, ãîôðû è ò.ï
FRelatedLines: TList; // Tolik 03/04/2025 -- òðàññû, ïî êîòîðûì ðèñóåòñÿ ÷àñòü òðóáíîãî ñîåäèíåíèÿ
FLength: Double; // Tolik 03/04/2025 äëèíà ñîåäèíåíèÿ
// //
//Tolik -- 24//09/2018 -- //Tolik -- 24//09/2018 --
//constructor Create(aFaces: TList; aSCSObject: TConnectorObject; aParent: T3DModel); //constructor Create(aFaces: TList; aSCSObject: TConnectorObject; aParent: T3DModel);
@ -537,7 +535,6 @@ type
function ConverResultToUom(aResult: Double; aIzm: String): Double; // Tolik 18/10/2018 -- function ConverResultToUom(aResult: Double; aIzm: String): Double; // Tolik 18/10/2018 --
Function GetPoint(aLine: TOrthoLine; PointNum: Integer; dist: Double): PDoublePoint; // Tolik 18/10/2018 -- Function GetPoint(aLine: TOrthoLine; PointNum: Integer; dist: Double): PDoublePoint; // Tolik 18/10/2018 --
Function GetPointA(apoint1, aPoint2: TDoublePoint; dist: Double): PDoublePoint; // Tolik 12/10/2025 --
const const
{TODO} {TODO}
FDeltaZ: Double = 0.030; FDeltaZ: Double = 0.030;
@ -711,8 +708,8 @@ function ConverResultToUom(aResult: Double; aIzm: String): Double;
umFoot : CadUomIzm := 0.3; umFoot : CadUomIzm := 0.3;
end; end;
Result := aResult * (CadUomIzm/UomIzm); //Result := aResult * (CadUomIzm/UomIzm);
//Result := aResult * (UomIzm/CadUomIzm); Result := aResult * (UomIzm/CadUomIzm);
end; end;
end; end;
@ -727,6 +724,7 @@ function ConverResultToUom(aResult: Double; aIzm: String): Double;
PointsAngle: Double; PointsAngle: Double;
Conn1,Conn2: TConnectorObject; Conn1,Conn2: TConnectorObject;
MaxX, MaxY, MinX, MinY, DistToPoint: Double; MaxX, MaxY, MinX, MinY, DistToPoint: Double;
begin begin
Result := Nil; Result := Nil;
New(Result); New(Result);
@ -798,37 +796,6 @@ function ConverResultToUom(aResult: Double; aIzm: String): Double;
//Result.z := MetreToUom((p1.z + ((Dist) * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefz))/(UOMToMetre(1000 / GCadForm.PCad.MapScale))); //Result.z := MetreToUom((p1.z + ((Dist) * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefz))/(UOMToMetre(1000 / GCadForm.PCad.MapScale)));
end; end;
// Äëÿ ðàñ÷åòà òî÷åê ïîïåðå÷íîé îòðèñîâêè ñåòêè (åñëè ýòî, íàïðèìåð, ïðîâîëî÷íûé ëîòîê)
Function GetPointA(aPoint1, aPoint2: TDoublePoint; dist: Double): PDoublePoint; // Tolik 12/10/2025 --
var
p1, p2: TDoublePoint;
distx, disty, distz, koefx, koefy, koefz, LineLen: Double;
DistToPoint: Double;
begin
Result := Nil;
New(Result);
DistToPoint := Dist;
p1.x := aPoint1.x;
p1.y := aPoint1.y;
p1.z := UomToMetre(aPoint1.z) * (UOMToMetre(1000 / GCadForm.PCad.MapScale));
//p1.z := TConnectorObject(aLine.JoinConnector1).ActualZOrder[1];
p2.x := aPoint2.x;
p2.y := aPoint2.y;
p2.z := UomToMetre(aPoint2.z) * (UOMToMetre(1000 / GCadForm.PCad.MapScale));
LineLen := SQRT(SQR(P1.x - P2.x) + SQR(P1.y - P2.y) + SQR(P1.z - P2.z));
koefx := (P2.x - P1.x)/LineLen;
koefy := (P2.y - P1.y)/LineLen;
koefz := (P2.z - P1.z)/LineLen;
Result.x := P1.x + (DistTopoint * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefx);
Result.y := P1.y + (DistTopoint * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefy);
Result.z := MetreToUom(P1.z + DistTopoint * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefz)/(UOMToMetre(1000 / GCadForm.PCad.MapScale));
//Result.x := p1.x + ((Dist) * (UOMToMetre(1000 / GCadForm.PCad.MapScale)) * koefx);
end;
function GetTubeRadius(aSCSCompon: TSCSComponent): Double; function GetTubeRadius(aSCSCompon: TSCSComponent): Double;
var i : Integer; var i : Integer;
NBProp: TNBProperty; NBProp: TNBProperty;
@ -4459,7 +4426,7 @@ var
if Result.IndexOf(LineCatalog.ComponentReferences[i]) = -1 then if Result.IndexOf(LineCatalog.ComponentReferences[i]) = -1 then
begin begin
Result.Add(LineCatalog.ComponentReferences[i]); Result.Add(LineCatalog.ComponentReferences[i]);
//break; break;
end; end;
end; end;
end; end;
@ -4495,19 +4462,17 @@ var
Procedure CreatePipeElement(aConn: TConnectorObject); // Cable Procedure CreatePipeElement(aConn: TConnectorObject); // Cable
var i, j, k : Integer; var i, j, k : Integer;
MaxPipeRadius, PrevPipeRadius, PipeRadius: Double; PrevPipeRadius, PipeRadius: Double;
LineCatalog: TSCSCatalog; LineCatalog: TSCSCatalog;
LineComponent, LineComponent1: TSCSComponent; LineComponent: TSCSComponent;
LineList, TubeList: TList; LineList, TubeList: TList;
PipePoint, PrevPipePoint, addPoint: PDoublePoint; PipePoint, PrevPipePoint, addPoint: PDoublePoint;
apArray: T3DPointArray; apArray: T3DPointArray;
TubeLine, TubeLine1: TOrthoLine; TubeLine: TOrthoLine;
JoinedConn: TConnectorObject; JoinedConn: TConnectorObject;
CableList: TList; CableList: TList;
CableOffset: Double; CableOffset: Double;
ConnSide: integer;
exVals: Boolean;
//Tolik 12/11/2021 -- ïðîâåðêà íà íàëè÷èå â òî÷å÷íîì îáúåêòå ýëåìåíòà òðóáíîãî ñîåäèíåíèÿ //Tolik 12/11/2021 -- ïðîâåðêà íà íàëè÷èå â òî÷å÷íîì îáúåêòå ýëåìåíòà òðóáíîãî ñîåäèíåíèÿ
function CheckisPipeElement(aConnector: TConnectorObject): Boolean; function CheckisPipeElement(aConnector: TConnectorObject): Boolean;
@ -4543,8 +4508,6 @@ var
TubeList := TList.Create; TubeList := TList.Create;
PipeList := TList.Create; PipeList := TList.Create;
CableList:= TList.Create; CableList:= TList.Create;
PipePoint := nil;
PrevPipePoint := nil;
//Collect Lines //Collect Lines
//Tolik 12/11/2021 -- //Tolik 12/11/2021 --
//if aConn.ConnectorType = ct_Clear then //if aConn.ConnectorType = ct_Clear then
@ -4593,15 +4556,14 @@ var
for k := 0 to LineCatalog.ComponentReferences.Count - 1 do for k := 0 to LineCatalog.ComponentReferences.Count - 1 do
begin begin
LineComponent := LineCatalog.ComponentReferences[k]; LineComponent := LineCatalog.ComponentReferences[k];
{
if LineComponent.ComponentType.SysName = ctsnTube then if LineComponent.ComponentType.SysName = ctsnTube then
begin begin
LineList.Add(TOrthoLine(JoinedConn.JoinedOrthoLineslist[i])); LineList.Add(TOrthoLine(JoinedConn.JoinedOrthoLineslist[i]));
TubeList.Add(LineComponent); TubeList.Add(LineComponent);
break; break;
end end;
else }
begin
if isCableComponent(LineComponent) then if isCableComponent(LineComponent) then
if CableList.IndexOf(LineComponent) = - 1 then if CableList.IndexOf(LineComponent) = - 1 then
CableList.Add(LineComponent); CableList.Add(LineComponent);
@ -4610,20 +4572,13 @@ var
end; end;
end; end;
end; end;
end;
(*
for i := 0 to CableList.Count - 1 do for i := 0 to CableList.Count - 1 do
begin begin
SetLength(apArray, 3); SetLength(apArray, 3);
TubeLine := TOrthoLine(LineList[0]); TubeLine := TOrthoLine(LineList[0]);
LineComponent := TSCSComponent(TubeList[0]); LineComponent := TSCSComponent(TubeList[0]);
PipeRadius := GetTubeRadius(LineComponent); PipeRadius := GetTubeRadius(LineComponent);
if PipeRadius = -1 then //Tolik 28/03/2025 -- åñëè íà çàäàí ðàäèóñ òðóáû - âûõîäèì
Exit;
PipeRadius := PipeRadius + PipeRadius /10;
PipePoint := nil; PipePoint := nil;
if aConn.ConnectorType = ct_Clear then if aConn.ConnectorType = ct_Clear then
begin begin
@ -4659,7 +4614,6 @@ var
TubeLine := TOrthoLine(LineList[0]); TubeLine := TOrthoLine(LineList[0]);
LineComponent := TSCSComponent(TubeList[0]); LineComponent := TSCSComponent(TubeList[0]);
PrevPipeRadius := GetTubeRadius(LineComponent); PrevPipeRadius := GetTubeRadius(LineComponent);
PrevPipeRadius := PrevPipeRadius + PrevPipeRadius /10;
if aConn.ConnectorType = ct_Clear then if aConn.ConnectorType = ct_Clear then
begin begin
if TConnectorObject(TubeLine.JoinConnector1).Id = aConn.ID then if TConnectorObject(TubeLine.JoinConnector1).Id = aConn.ID then
@ -4678,7 +4632,6 @@ var
TubeLine := TOrthoLine(LineList[i]); TubeLine := TOrthoLine(LineList[i]);
LineComponent := TSCSComponent(TubeList[j]); LineComponent := TSCSComponent(TubeList[j]);
PipeRadius := GetTubeRadius(LineComponent); PipeRadius := GetTubeRadius(LineComponent);
PipeRadius := PipeRadius + PipeRadius /10;
if PipeRadius <> -1 then // !!!! if PipeRadius <> -1 then // !!!!
begin begin
SetLength(apArray, 2); SetLength(apArray, 2);
@ -4850,438 +4803,9 @@ var
SetLength(apArray, 0); SetLength(apArray, 0);
end; end;
end; end;
*)
//Ñáðîñèòü òðàññû ñ òðóáàìè, ãäå íå óêàçàí äèàìåòð ñàìîé òðóáû
for i := LineList.Count - 1 downto 0 do
begin
LineComponent := TSCSComponent(TubeList[i]);
PipeRadius := GetTubeRadius(LineComponent);
if PipeRadius = -1 then
begin
LineList.Delete(i);
TubeList.Delete(i);
CableList.Delete(i);
end;
end;
if LineList.Count > 0 then
begin
if LineList.Count = 1 then //çàãëóøêà
begin
SetLength(apArray, 2);
TubeLine := TOrthoLine(LineList[0]);
LineComponent := TSCSComponent(TubeList[0]);
PipeRadius := GetTubeRadius(LineComponent);
PipeRadius := PipeRadius + PipeRadius /10;
PipePoint := nil;
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TubeLine.JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TubeLine, 1, PipeRadius)
else
PipePoint := GetPoint(TubeLine, 2, PipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TubeLine.JoinConnector1)) <> -1 then
PipePoint := GetPoint(TubeLine, 1, PipeRadius)
else
PipePoint := GetPoint(TubeLine, 2, PipeRadius)
end;
apArray[1].x := PipePoint.x;
apArray[1].y := PipePoint.y;
apArray[1].z := PipePoint.z;
DisPose(PipePoint); // 21/12/2019 -- Tolik
PipePoint := nil;
apArray[0].x := aConn.ap1.x;
apArray[0].y := aConn.ap1.y;
apArray[0].z := aConn.ActualZOrder[1];
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TubeLine);
x3DConnector.FLength := PipeRadius;
end
else // ñòûê äâóõ òðóá èëè êîëåíî
if LineList.Count = 2 then
begin
PipeRadius := GetTubeRadius(TSCSComponent(TubeList[0]));
PipeRadius := PipeRadius + PipeRadius /10;
PipePoint := nil;
PrevPipeRadius := GetTubeRadius(TSCSComponent(TubeList[1]));
PrevPipeRadius := PrevPipeRadius + PrevPipeRadius /10;
if CompareValue(PipeRadius, PrevPipeRadius) = 0 then // äâå òðàññû, òðóáà îäèíàêîâîãî äèàìåòðà
begin
SetLength(apArray, 3 );
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TOrthoLine(LineList[0]).JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TOrthoLine(LineList[0]), 1, PipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[0]), 2, PipeRadius);
if TConnectorObject(TOrthoLine(LineList[1]).JoinConnector1).Id = aConn.ID then
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 1, PipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 2, PipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(LineList[0]).JoinConnector1)) <> -1 then
PipePoint := GetPoint(TOrthoLine(LineList[0]), 1, PipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[0]), 2, PipeRadius);
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(LineList[1]).JoinConnector1)) <> -1 then
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 1, PipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 2, PipeRadius);
end;
SetLength(apArray, 3);
apArray[0].x := PipePoint.x;
apArray[0].y := PipePoint.y;
apArray[0].z := PipePoint.z;
DisPose(PipePoint);
PipePoint := nil;
apArray[1].x := aConn.ap1.x;
apArray[1].y := aConn.ap1.y;
apArray[1].z := aConn.ActualZOrder[1];
apArray[2].x := PrevPipePoint.x;
apArray[2].y := PrevPipePoint.y;
apArray[2].z := PrevPipePoint.z;
Dispose(PrevPipePoint);
PrevPipePoint := nil;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TOrthoLine(LineList[0]));
x3DConnector.FRelatedLines.Add(TOrthoLine(LineList[1]));
x3DConnector.FLength := PipeRadius;
end
else
begin
exVals := False;
if CompareValue(PipeRadius, PrevPiperadius) = -1 then
begin
ExchangeDouble(PipeRadius, PrevPipeRadius); // âûáðàòü áîëüøèé ðàäèóñ êàê îñíîâó
exVals := True;
end;
SetLength(apArray, 3);
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TOrthoLine(LineList[0]).JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TOrthoLine(LineList[0]), 1, PipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[0]), 2, PipeRadius);
if TConnectorObject(TOrthoLine(LineList[1]).JoinConnector1).Id = aConn.ID then
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 1, PipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 2, PipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(LineList[0]).JoinConnector1)) <> -1 then
PipePoint := GetPoint(TOrthoLine(LineList[0]), 1, PipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[0]), 2, PipeRadius);
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(LineList[1]).JoinConnector1)) <> -1 then
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 1, PipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(LineList[1]), 2, PipeRadius);
end;
SetLength(apArray, 3);
apArray[0].x := PipePoint.x;
apArray[0].y := PipePoint.y;
apArray[0].z := PipePoint.z;
DisPose(PipePoint);
PipePoint := nil;
apArray[1].x := aConn.ap1.x;
apArray[1].y := aConn.ap1.y;
apArray[1].z := aConn.ActualZOrder[1];
apArray[2].x := PrevPipePoint.x;
apArray[2].y := PrevPipePoint.y;
apArray[2].z := PrevPipePoint.z;
Dispose(PrevPipePoint);
PrevPipePoint := nil;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TOrthoLine(LineList[0]));
x3DConnector.FRelatedLines.Add(TOrthoLine(LineList[1]));
x3DConnector.FLength := PipeRadius;
if exVals then
TubeLine := LineList[0]
else
TubeLine := LineList[1];
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TubeLine.JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TubeLine, 1, PipeRadius + PrevPipeRadius)
else
PipePoint := GetPoint(TubeLine, 2, PipeRadius + PrevPipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TubeLine.JoinConnector1) <> -1 then
PipePoint := GetPoint(TubeLine, 1, PipeRadius + PrevPipeRadius)
else
PipePoint := GetPoint(TubeLine, 2, PipeRadius + PrevPipeRadius);
end;
SetLength(apArray, 2);
apArray[0].x := aConn.ap1.x;
apArray[0].y := aConn.ap1.y;
apArray[0].z := aConn.ActualZOrder[1];
apArray[1].x := PipePoint.x;
apArray[1].y := PipePoint.y;
apArray[1].z := PipePoint.z;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PrevPipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TubeLine);
x3DConnector.FLength := PipeRadius + PrevPipeRadius;
end;
end
else
if LineList.Count > 2 then
begin
MaxPipeRadius := -1;
TubeLine1 := nil;
TubeLine := nil;
for i := 0 to TubeList.Count - 1 do //get Max tube Radius
begin
PipeRadius := GetTubeRadius(TSCSComponent(TubeList[i]));
if CompareValue(MaxPipeRadius, PipeRadius) = -1 then
begin
MaxPipeRadius := PipeRadius;
TubeLine := TOrthoLine(LineList[i]);
LineComponent := TSCSComponent(TubeList[i]);
j := i;
end;
end;
Tubelist.Delete(j); // óäàëÿåì âûáðàííóþ òðàññó è òðóáó èç ñïèñêà
LineList.Delete(j);
CableList.Delete(j);
for i := 0 to TubeList.Count - 1 do //get next tube with Max Radius
begin
PipeRadius := GetTubeRadius(TSCSComponent(TubeList[i]));
if CompareValue(MaxPipeRadius, PipeRadius) = 0 then
begin
TubeLine1 := TOrthoLine(LineList[i]);
LineComponent1 := TSCSComponent(Tubelist[i]);
j := i;
break;
end;
end;
MaxPipeRadius := MaxPipeRadius + MaxPipeRadius/10;
if TubeLine1 = nil then //åñëè íåò òðóá áîëüøå ñ ìàêñ ðàäèóñîì, áåðåì òðóáó ñ ìàêñ ðàäèóñîì èç òåõ, ÷òî îñòàëèñü
begin
PipeRadius := -1;
for i := 0 to LineList.Count - 1 do
begin
PrevPipeRadius := GetTubeRadius(TSCSComponent(TubeList[i]));
if CompareValue(PipeRadius, PrevPipeRadius) = -1 then
begin
PipeRadius := PrevPipeRadius;
TubeLine1 := TOrthoLine(LineList[i]);
LineComponent1 := TSCSComponent(TubeList[i]);
j := i;
end;
end;
end;
PipeRadius := PipeRadius + PipeRadius/10;
Tubelist.Delete(j); // óäàëÿåì âòîðóþ âûáðàííóþ òðàññó è òðóáó èç ñïèñêà
LineList.Delete(j);
CableList.Delete(j);
//ïåðâîå êîëåíî ìàêñ ðàäèóñîì
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TOrthoLine(TubeLine).JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TOrthoLine(TubeLine), 1, MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(TubeLine), 2, MaxPipeRadius);
if TConnectorObject(TOrthoLine(TubeLine1).JoinConnector1).Id = aConn.ID then
PrevPipePoint := GetPoint(TOrthoLine(TubeLine1), 1, MaxPipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(TubeLine1), 2, MaxPipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(TubeLine).JoinConnector1)) <> -1 then
PipePoint := GetPoint(TOrthoLine(TubeLine), 1, MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(TubeLine), 2, MaxPipeRadius);
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(TubeLine1).JoinConnector1)) <> -1 then
PrevPipePoint := GetPoint(TOrthoLine(TubeLine1), 1, MaxPipeRadius)
else
PrevPipePoint := GetPoint(TOrthoLine(TubeLine1), 2, MaxPipeRadius);
end;
SetLength(apArray, 3);
apArray[0].x := PipePoint.x;
apArray[0].y := PipePoint.y;
apArray[0].z := PipePoint.z;
DisPose(PipePoint);
PipePoint := nil;
apArray[1].x := aConn.ap1.x;
apArray[1].y := aConn.ap1.y;
apArray[1].z := aConn.ActualZOrder[1];
apArray[2].x := PrevPipePoint.x;
apArray[2].y := PrevPipePoint.y;
apArray[2].z := PrevPipePoint.z;
Dispose(PrevPipePoint);
PrevPipePoint := nil;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := MaxPipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TubeLine);
x3DConnector.FRelatedLines.Add(TubeLine1);
x3DConnector.FLength := MaxPipeRadius;
//åñëè ïåðâûå äâå òðóáû ðàçíîãî ðàäèóñà - äîêèíóòü õâîñòîâèê ñîåäèíåíèÿ äëÿ òîíüøåé òðóáû
if CompareValue(MaxPipeRadius, PipeRadius) <> 0 then
begin
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TOrthoLine(TubeLine1).JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TOrthoLine(TubeLine1), 1, PipeRadius + MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(TubeLine1), 2, PipeRadius + MaxPipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(TubeLine1).JoinConnector1)) <> -1 then
PipePoint := GetPoint(TOrthoLine(TubeLine1), 1, PipeRadius + MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(TubeLine1), 2, PipeRadius + MaxPipeRadius);
end;
SetLength(apArray, 2);
apArray[0].x := aConn.ap1.x;
apArray[0].y := aConn.ap1.y;
apArray[0].z := aConn.ActualZOrder[1];
apArray[1].x := PipePoint.x;
apArray[1].y := PipePoint.y;
apArray[1].z := PipePoint.z;
Dispose(PipePoint);
PipePoint := nil;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(TubeLine1);
x3DConnector.FLength := PipeRadius + MaxPipeRadius;
end;
//äîðèñîâàòü îñòàëüíûå
for i := 0 to TubeList.Count - 1 do
begin
PipeRadius := GetTubeRadius(TSCSComponent(TubeList[i]));
PipeRadius := PipeRadius + PipeRadius/10;
if aConn.ConnectorType = ct_Clear then
begin
if TConnectorObject(TOrthoLine(LineList[i]).JoinConnector1).Id = aConn.ID then
PipePoint := GetPoint(TOrthoLine(LineList[i]), 1, PipeRadius + MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[i]), 2, PipeRadius + MaxPipeRadius);
end
else
begin
if aConn.JoinedConnectorsList.IndexOf(TConnectorObject(TOrthoLine(LineList[i]).JoinConnector1)) <> -1 then
PipePoint := GetPoint(TOrthoLine(LineList[i]), 1, PipeRadius + MaxPipeRadius)
else
PipePoint := GetPoint(TOrthoLine(LineList[i]), 2, PipeRadius + MaxPipeRadius);
end;
SetLength(apArray, 2);
apArray[0].x := aConn.ap1.x;
apArray[0].y := aConn.ap1.y;
apArray[0].z := aConn.ActualZOrder[1];
apArray[1].x := PipePoint.x;
apArray[1].y := PipePoint.y;
apArray[1].z := PipePoint.z;
Dispose(PipePoint);
PipePoint := nil;
x3DConnector := T3DConnector.Create(aFaces, xConn, Self, True);
x3DConnector.CollectConnector(aFaces, apArray);
x3DConnector.FPipeRadius := PipeRadius;
FScsObjects.Add(x3DConnector);
x3DConnector.FSCSObject.F3DObject := x3DConnector;
x3DConnector.FColor := ConvertWinColor(clGreen);
x3DConnector.FRelatedLines.Add(LineList[i]);
x3DConnector.FLength := PipeRadius + MaxPipeRadius;
end;
end;
LineList.Free; LineList.Free;
TubeList.Free; TubeList.Free;
PipeList.Free; PipeList.Free;
CableList.Free;
end;
end; end;
// //
Function Get3dModelFileName(aConn: TConnectorObject): String; Function Get3dModelFileName(aConn: TConnectorObject): String;
@ -5457,11 +4981,7 @@ begin
CheckAddZones(xConn); CheckAddZones(xConn);
// //
end end
//Tolik 08/04/2025 -- else if xConn.JoinedConnectorsList.Count >= 0 then
//else if xConn.JoinedConnectorsList.Count >= 0 then
else
if ((xConn.JoinedConnectorsList.Count >= 0) and (not CheckisPipeElement(xConn))) then
//
begin begin
x3DConnector := T3DConnector.Create(aFaces, xConn, Self); x3DConnector := T3DConnector.Create(aFaces, xConn, Self);
x3DConnector.CollectConnector(aFaces, a3DPointArr); x3DConnector.CollectConnector(aFaces, a3DPointArr);
@ -5526,8 +5046,8 @@ begin
FScsObjects.Add(x3DLine); FScsObjects.Add(x3DLine);
x3DLine.FSCSObject.F3DObject := x3DLine; x3DLine.FSCSObject.F3DObject := x3DLine;
// Tolik 17/09/2018 -- òðóáû íà òðàññå // Tolik 17/09/2018 -- òðóáû íà òðàññå
TubeList := GetTubeList(xLine); //15/09/2021 -- //TubeList := GetTubeList(xLine); //15/09/2021 --
//TubeList := nil; TubeList := nil;
ComponOffset := 0; ComponOffset := 0;
if TubeList <> nil then if TubeList <> nil then
@ -5536,7 +5056,7 @@ begin
for j := 0 to TubeList.Count - 1 do for j := 0 to TubeList.Count - 1 do
begin begin
TubeRadius := GetTubeRadius(TSCSComponent(TubeList[j])); TubeRadius := GetTubeRadius(TSCSComponent(TubeList[j]));
(*
if TubeRadius <> -1 then if TubeRadius <> -1 then
begin begin
x3DTube := T3DTube.create(aFaces, xLine, Self, TSCSComponent(TubeList[j]), TubeRadius*2, TailTubeList); x3DTube := T3DTube.create(aFaces, xLine, Self, TSCSComponent(TubeList[j]), TubeRadius*2, TailTubeList);
@ -5563,7 +5083,7 @@ begin
x3DTube.FSCSObject.F3DObject := x3DTube; x3DTube.FSCSObject.F3DObject := x3DTube;
end; end;
ComponOffset := ComponOffset + TubeRadius * 2; ComponOffset := ComponOffset + TubeRadius * 2;
*)
{ {
if TailTubeList <> nil then // ýòî, òèïà, åñëè áóäóò òîðöû, îòðèñîâàííûå öèëèíäðàìè, â çàâèñèìîñòè îò ñâîéñòâ êîìïîíåíòà "òðóáà" if TailTubeList <> nil then // ýòî, òèïà, åñëè áóäóò òîðöû, îòðèñîâàííûå öèëèíäðàìè, â çàâèñèìîñòè îò ñâîéñòâ êîìïîíåíòà "òðóáà"
begin begin
@ -14209,18 +13729,7 @@ var
i: Integer; i: Integer;
begin begin
try try
//Tolik 08/04/2025
//FPoint := ap[0];
if Self.FisPipeElement then
begin
if Length(ap) = 3 then
FPoint := ap[1]
else
FPoint := ap[0]; FPoint := ap[0];
end
else
FPoint := ap[0];
//
{TODO ZCoord} {TODO ZCoord}
//ap[0].z := ap[0].z * FScaleDelta; //ap[0].z := ap[0].z * FScaleDelta;
for i := 0 to (Length(ap) - 1) do for i := 0 to (Length(ap) - 1) do
@ -14283,10 +13792,7 @@ begin
else else
begin begin
FSCSCompon := nil; FSCSCompon := nil;
//Tolik 18/4/2025 -- FSCSComponID := -1;
//FSCSComponID := -1;
FSCSComponID := aSCSObject.ID;
//
end; end;
FName := FSCSObject.Name; FName := FSCSObject.Name;
FIndex := FSCSObject.FIndex; FIndex := FSCSObject.FIndex;
@ -14326,8 +13832,6 @@ begin
FColor := clrBlack; FColor := clrBlack;
FJoinedConnectorsList := TList.Create; FJoinedConnectorsList := TList.Create;
FJoinedLinesList := TList.Create; FJoinedLinesList := TList.Create;
FRelatedLines := TList.Create; // -- Tolik 03/4/2025 ñïèñîê òðàññ, ïî êîòîðûì ïðîõîèò ñîåäèíåíèå
FLength := 0; // Tolik 03/04/05 -- äëèíà ñîåäèíåíèÿ
except except
on E: Exception do AddExceptionToLogEx('T3DConnector.Create', E.Message); on E: Exception do AddExceptionToLogEx('T3DConnector.Create', E.Message);
end; end;
@ -14702,9 +14206,7 @@ var
for i := 0 to SCSCatalog.ComponentReferences.Count - 1 do for i := 0 to SCSCatalog.ComponentReferences.Count - 1 do
begin begin
SCSCompon := SCSCatalog.ComponentReferences[i]; SCSCompon := SCSCatalog.ComponentReferences[i];
//Tolik 10/04/2025 -- if SCSCompon.ComponentType.SysName <> ctsnCableChannelAccessory then
//if SCSCompon.ComponentType.SysName <> ctsnCableChannelAccessory then
if ((SCSCompon.ComponentType.SysName <> ctsnCableChannelAccessory) and (SCSCompon.ComponentType.SysName <> ctsnWireTray)) then
begin begin
ComponDiam := getLineComponOutRadius(SCSCompon); ComponDiam := getLineComponOutRadius(SCSCompon);
if isCableComponent(SCSCompon) then //êàáåëü if isCableComponent(SCSCompon) then //êàáåëü
@ -15755,7 +15257,6 @@ begin
FNotes.Free; FNotes.Free;
FJoinedConnectorsList.Free; FJoinedConnectorsList.Free;
FJoinedLinesList.Free; FJoinedLinesList.Free;
FRelatedLines.Free;
inherited; inherited;
end; end;
//*************** -\ROOF- ************************** //*************** -\ROOF- **************************

View File

@ -637,6 +637,7 @@ var
Req: string; Req: string;
TimeStr: string; TimeStr: string;
begin begin
Randomize;
Randomize; Randomize;
TimeStr := DateTimeToStr(Now); TimeStr := DateTimeToStr(Now);
while Pos(':', TimeStr) > 0 do while Pos(':', TimeStr) > 0 do

View File

@ -6900,14 +6900,14 @@ var
if ResultList.Count > 0 then if ResultList.Count > 0 then
begin begin
ATraveledIndex := ATraveledIndex; ATraveledIndex := ATraveledIndex;
//showmessage('CurrTick > 0.00009 and ResultList.Count = '+ inttostr(ResultList.Count)); showmessage('CurrTick > 0.00009 and ResultList.Count = '+ inttostr(ResultList.Count));
exit; exit;
end; end;
end; end;
if CurrTick > 0.00013 then if CurrTick > 0.00013 then
begin begin
ATraveledIndex := ATraveledIndex; ATraveledIndex := ATraveledIndex;
//showmessage('CurrTick > 0.00013 '); showmessage('CurrTick > 0.00013 ');
exit; exit;
end; end;
@ -6915,7 +6915,7 @@ var
if ResultList.Count > 2 then if ResultList.Count > 2 then
begin begin
ATraveledIndex := ATraveledIndex; ATraveledIndex := ATraveledIndex;
//showmessage('ATraveledIndex > 60 and ResultList.Count > 2'); showmessage('ATraveledIndex > 60 and ResultList.Count > 2');
exit; exit;
end end
else else
@ -6924,7 +6924,7 @@ var
if CurrTick > 0.00006 then if CurrTick > 0.00006 then
begin begin
ATraveledIndex := ATraveledIndex; ATraveledIndex := ATraveledIndex;
//showmessage('ATraveledIndex > 60 ResultList.Count > 100'); showmessage('ATraveledIndex > 60 ResultList.Count > 100');
exit; exit;
end; end;
end; end;

View File

@ -1,9 +1,6 @@
//Tolik 23/01/2025 -- ïåðåñìîòðåòü ïåðåíîñû äëòííûõ íàèìåíîâàíèé
{$A+,B-,C+,D+,E-,F-,G+,H+,I-,J-,K-,L+,M-,N+,O-,P+,Q-,R-,S-,T-,U+,V+,W-,X+,Y+,Z1} {$A+,B-,C+,D+,E-,F-,G+,H+,I-,J-,K-,L+,M-,N+,O-,P+,Q-,R-,S-,T-,U+,V+,W-,X+,Y+,Z1}
//{$MINSTACKSIZE $00004000} //{$MINSTACKSIZE $00004000}
//{$MAXSTACKSIZE $00100000} // //{$MAXSTACKSIZE $00100000}
//{$IMAGEBASE $00400000} //{$IMAGEBASE $00400000}
//{$APPTYPE GUI} //{$APPTYPE GUI}
//{$J+} //{$J+}
@ -41,7 +38,7 @@ var i, j, k, l, m: integer;
Line_Count: Integer; Line_Count: Integer;
Switches, Connections, UzoList: TSCSComponents; Switches, Connections, UzoList: TSCSComponents;
ConnectedCompon: TSCSComponent; ConnectedCompon: TSCSComponent;
CurrText, elText: TRichText; CurrText: TRichText;
TextList: TStringList; TextList: TStringList;
IconFigList: TList; IconFigList: TList;
ParentCatalog: TSCSCatalog; ParentCatalog: TSCSCatalog;
@ -812,10 +809,6 @@ var i, j, k, l, m: integer;
//SLine := TLine.create(GCadForm.PCad.WorkWidth/10 - 20, by - 8, GCadForm.PCad.WorkWidth/10 - 10, by - 8, 2, ord(psSolid), clBlack, 0, GCadForm.PCad.GetLayerHandle(0), mydsNormal, GCadForm.PCad); //SLine := TLine.create(GCadForm.PCad.WorkWidth/10 - 20, by - 8, GCadForm.PCad.WorkWidth/10 - 10, by - 8, 2, ord(psSolid), clBlack, 0, GCadForm.PCad.GetLayerHandle(0), mydsNormal, GCadForm.PCad);
SLine := TLine.create(GCadForm.PCad.WorkWidth/10 - 20, by - 5, GCadForm.PCad.WorkWidth/10 - 10, by - 5, 2, ord(psSolid), clBlack, 0, GCadForm.PCad.GetLayerHandle(0), mydsNormal, GCadForm.PCad); SLine := TLine.create(GCadForm.PCad.WorkWidth/10 - 20, by - 5, GCadForm.PCad.WorkWidth/10 - 10, by - 5, 2, ord(psSolid), clBlack, 0, GCadForm.PCad.GetLayerHandle(0), mydsNormal, GCadForm.PCad);
GCadForm.PCad.AddCustomFigure(1, TFigure(SLine), false); GCadForm.PCad.AddCustomFigure(1, TFigure(SLine), false);
// Tolik 22/01/2025
elText.Move((((GCadForm.PCad.WorkWidth/10 - 20) + (GCadForm.PCad.WorkWidth/10 - 10))/2) - elText.CenterPoint.x,
(((190 - 3 - MaxTableHeightArray[0]) + (by - 5))/2) - elText.CenterPoint.y);
//
end; end;
end; end;
//bx := bx + 10; //bx := bx + 10;
@ -1209,7 +1202,7 @@ Begin
CurrText := CreateTextObject(Line_x1 - 80, Line_y1 + 80, TextList); CurrText := CreateTextObject(Line_x1 - 80, Line_y1 + 80, TextList);
CurrText.Rotate(((-90)/180) * PI, CurrText.CenterPoint); CurrText.Rotate(((-90)/180) * PI, CurrText.CenterPoint);
//TextFigList.Add(CurrText); //TextFigList.Add(CurrText);
elText := CurrText; // Tolik 22/01/2025 --
ColObjList := TList.Create; ColObjList := TList.Create;
TextList.Clear; TextList.Clear;

View File

@ -521,6 +521,10 @@ object F_MasterNewList: TF_MasterNewList
end end
object tsProjOptionsObjectProps: TRzTabSheet object tsProjOptionsObjectProps: TRzTabSheet
Caption = #1055#1072#1088#1072#1084#1077#1090#1088#1099' '#1086#1073#1098#1077#1082#1090#1086#1074 Caption = #1055#1072#1088#1072#1084#1077#1090#1088#1099' '#1086#1073#1098#1077#1082#1090#1086#1074
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object RzGroupBox18: TRzGroupBox object RzGroupBox18: TRzGroupBox
Left = 4 Left = 4
Top = 6 Top = 6
@ -1047,7 +1051,7 @@ object F_MasterNewList: TF_MasterNewList
Width = 626 Width = 626
Height = 481 Height = 481
HelpContext = 33002 HelpContext = 33002
ActivePage = TabAll ActivePage = TabPageParams
Align = alTop Align = alTop
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@ -1058,7 +1062,7 @@ object F_MasterNewList: TF_MasterNewList
HotTrackStyle = htsText HotTrackStyle = htsText
ParentFont = False ParentFont = False
ShowShadow = False ShowShadow = False
TabIndex = 0 TabIndex = 1
TabOrder = 0 TabOrder = 0
TabStyle = tsSquareCorners TabStyle = tsSquareCorners
OnChange = ListPageControlChange OnChange = ListPageControlChange
@ -3602,6 +3606,10 @@ object F_MasterNewList: TF_MasterNewList
end end
object TabSheet5: TRzTabSheet object TabSheet5: TRzTabSheet
Caption = #1050#1072#1073#1080#1085#1077#1090#1099 Caption = #1050#1072#1073#1080#1085#1077#1090#1099
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object cbShowCabinetsBounds: TRzCheckBox object cbShowCabinetsBounds: TRzCheckBox
Left = 4 Left = 4
Top = 32 Top = 32
@ -3627,6 +3635,10 @@ object F_MasterNewList: TF_MasterNewList
end end
object TabSheet4: TRzTabSheet object TabSheet4: TRzTabSheet
Caption = #1055#1077#1095#1072#1090#1100 Caption = #1055#1077#1095#1072#1090#1100
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object cbBlackPrint: TcxRadioButton object cbBlackPrint: TcxRadioButton
Left = 5 Left = 5
Top = 8 Top = 8
@ -4125,6 +4137,10 @@ object F_MasterNewList: TF_MasterNewList
object tsListSpravochniki: TRzTabSheet object tsListSpravochniki: TRzTabSheet
HelpContext = 33006 HelpContext = 33006
Caption = #1058#1080#1087#1099' '#1082#1086#1084#1087#1086#1085#1077#1085#1090 Caption = #1058#1080#1087#1099' '#1082#1086#1084#1087#1086#1085#1077#1085#1090
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object pnComponentType: TRzPanel object pnComponentType: TRzPanel
Left = 0 Left = 0
Top = 434 Top = 434
@ -12651,6 +12667,8 @@ object F_MasterNewList: TF_MasterNewList
object tsProjectSpravochniki: TRzTabSheet object tsProjectSpravochniki: TRzTabSheet
TabVisible = False TabVisible = False
Caption = #1057#1087#1088#1072#1074#1086#1095#1085#1080#1082#1080 Caption = #1057#1087#1088#1072#1074#1086#1095#1085#1080#1082#1080
ExplicitWidth = 0
ExplicitHeight = 0
end end
end end
object RzGroupBox20: TRzGroupBox object RzGroupBox20: TRzGroupBox

View File

@ -1,11 +1,10 @@
object F_Reserv: TF_Reserv object F_Reserv: TF_Reserv
Left = 414 Left = 380
Top = 175 Top = 178
BorderIcons = [] BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
Caption = #1059#1087#1088#1072#1074#1083#1077#1085#1080#1077' '#1088#1077#1079#1077#1088#1074#1085#1099#1084#1080' '#1082#1086#1087#1080#1103#1084#1080' '#1085#1072' '#1091#1076#1072#1083#1077#1085#1085#1086#1084' '#1089#1077#1088#1074#1077#1088#1077 Caption = #1059#1087#1088#1072#1074#1083#1077#1085#1080#1077' '#1088#1077#1079#1077#1088#1074#1085#1099#1084#1080' '#1082#1086#1087#1080#1103#1084#1080' '#1085#1072' '#1091#1076#1072#1083#1077#1085#1085#1086#1084' '#1089#1077#1088#1074#1077#1088#1077
ClientHeight = 344 ClientHeight = 311
ClientWidth = 556 ClientWidth = 532
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@ -18,8 +17,8 @@ object F_Reserv: TF_Reserv
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Label1: TLabel object Label1: TLabel
Left = 8 Left = 32
Top = 43 Top = 4
Width = 180 Width = 180
Height = 16 Height = 16
Caption = #1057#1087#1080#1089#1086#1082' '#1092#1072#1081#1083#1086#1074' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077 Caption = #1057#1087#1080#1089#1086#1082' '#1092#1072#1081#1083#1086#1074' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077
@ -31,8 +30,8 @@ object F_Reserv: TF_Reserv
ParentFont = False ParentFont = False
end end
object Label2: TLabel object Label2: TLabel
Left = 8 Left = 32
Top = 301 Top = 256
Width = 286 Width = 286
Height = 13 Height = 13
Caption = #1047#1072#1085#1103#1090#1086' '#1076#1080#1089#1082#1086#1074#1086#1075#1086' '#1087#1088#1086#1089#1090#1088#1072#1085#1089#1090#1074#1072' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077', '#1052#1073' ' Caption = #1047#1072#1085#1103#1090#1086' '#1076#1080#1089#1082#1086#1074#1086#1075#1086' '#1087#1088#1086#1089#1090#1088#1072#1085#1089#1090#1074#1072' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077', '#1052#1073' '
@ -44,8 +43,8 @@ object F_Reserv: TF_Reserv
ParentFont = False ParentFont = False
end end
object Label3: TLabel object Label3: TLabel
Left = 8 Left = 32
Top = 325 Top = 280
Width = 279 Width = 279
Height = 13 Height = 13
Caption = #1051#1080#1084#1080#1090' '#1076#1080#1089#1082#1086#1074#1086#1075#1086' '#1087#1088#1086#1089#1090#1088#1072#1085#1089#1090#1074#1072' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077', '#1052#1073' ' Caption = #1051#1080#1084#1080#1090' '#1076#1080#1089#1082#1086#1074#1086#1075#1086' '#1087#1088#1086#1089#1090#1088#1072#1085#1089#1090#1074#1072' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077', '#1052#1073' '
@ -57,8 +56,8 @@ object F_Reserv: TF_Reserv
ParentFont = False ParentFont = False
end end
object lbAllowedSpace: TLabel object lbAllowedSpace: TLabel
Left = 296 Left = 320
Top = 325 Top = 280
Width = 3 Width = 3
Height = 13 Height = 13
Caption = ' ' Caption = ' '
@ -70,8 +69,8 @@ object F_Reserv: TF_Reserv
ParentFont = False ParentFont = False
end end
object lbUsedSpace: TLabel object lbUsedSpace: TLabel
Left = 296 Left = 320
Top = 301 Top = 256
Width = 3 Width = 3
Height = 13 Height = 13
Caption = ' ' Caption = ' '
@ -82,112 +81,201 @@ object F_Reserv: TF_Reserv
Font.Style = [fsBold] Font.Style = [fsBold]
ParentFont = False ParentFont = False
end end
object ToolBar1: TToolBar object Button1: TButton
AlignWithMargins = True Left = 437
Left = 3 Top = 278
Top = 3 Width = 75
Width = 550 Height = 25
Height = 34 Caption = #1047#1072#1082#1088#1099#1090#1100
ButtonHeight = 30 Font.Charset = DEFAULT_CHARSET
ButtonWidth = 31 Font.Color = clWindowText
Caption = 'ToolBar1' Font.Height = -11
DisabledImages = FSCS_Main.imagePanel Font.Name = 'Tahoma'
DoubleBuffered = True Font.Style = [fsBold]
Images = FSCS_Main.imagePanel ParentFont = False
ParentDoubleBuffered = False
ParentShowHint = False
ShowHint = True
TabOrder = 0 TabOrder = 0
object ToolButton1: TToolButton OnClick = Button1Click
Left = 0
Top = 0
Action = aRefresh
end end
object ToolButton2: TToolButton object ListBox1: TListBox
Left = 31 Left = 32
Top = 0 Top = 24
Action = aUpload Width = 345
end Height = 226
object ToolButton3: TToolButton ItemHeight = 13
Left = 62
Top = 0
Hint = #1047#1072#1075#1088#1091#1079#1080#1090#1100' '#1092#1072#1081#1083' '#1089' '#1089#1077#1088#1074#1077#1088#1072
Action = aLoad
end
object ToolButton4: TToolButton
Left = 93
Top = 0
Action = aDelFileFrom
end
object ToolButton6: TToolButton
Left = 124
Top = 0
Hint = #1054#1090#1082#1088#1099#1090#1100' '#1092#1072#1081#1083' '#1074' '#1087#1088#1080#1083#1086#1078#1077#1085#1080#1080
Action = aToPM
ImageIndex = 7
end
object ToolButton7: TToolButton
Left = 155
Top = 0
Hint = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1090#1077#1082#1091#1097#1080#1081' '#1087#1088#1086#1077#1082#1090' '#1085#1072' '#1089#1077#1088#1074#1077#1088
Action = aFromPM
ImageIndex = 6
end
object ToolButton5: TToolButton
Left = 186
Top = 0
Action = aExit
end
end
object cxGrid1: TcxGrid
Left = 8
Top = 62
Width = 537
Height = 233
PopupMenu = PopupMenu1
TabOrder = 1 TabOrder = 1
LookAndFeel.NativeStyle = True
object cxGrid1DBTableView1: TcxGridDBTableView
Navigator.Buttons.CustomButtons = <>
DataController.DataSource = DataSource1
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.CopyRecordsToClipboard = False
OptionsBehavior.ImmediateEditor = False
OptionsBehavior.ColumnHeaderHints = False
OptionsData.Deleting = False
OptionsData.Editing = False
OptionsData.Inserting = False
OptionsSelection.CellSelect = False
OptionsView.FocusRect = False
OptionsView.GroupByBox = False
object cxGrid1DBTableView1FileName: TcxGridDBColumn
Caption = #1060#1072#1081#1083
DataBinding.FieldName = 'FileName'
Options.Editing = False
Options.Filtering = False
Options.Moving = False
Width = 280
end end
object cxGrid1DBTableView1FileSize: TcxGridDBColumn object btnSave: TBitBtn
Caption = #1056#1072#1079#1084#1077#1088', '#1052#1073 Left = 389
DataBinding.FieldName = 'FileSize' Top = 24
Options.Editing = False Width = 135
Options.Filtering = False Height = 41
Options.Moving = False Caption = 'btnSave'
DoubleBuffered = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000000000000000000000000000000000000FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000808
0800A59CA500A59CA500A59CA500A59CA500A59CA500A59CA500181818000808
080000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00181818000808
0800C6C6C60029292900424242009C9C9C00C6C6C600CECECE00181818000808
080008080800FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00101010000808
0800C6C6C60018181800292929009C9C9C00BDBDBD00C6C6C600181818000808
0800080808000808080000000000FF00FF00FF00FF00FF00FF00101010000808
0800CECECE00C6C6C600C6C6C600C6C6C600BDBDBD00BDBDBD00181818000808
0800101010000808080008080800FF00FF00FF00FF00FF00FF00101010000808
0800080808000808080008080800080808000808080008080800080808000808
08001010100008080800080808000808080000000000FF00FF00212121000808
0800FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F7000808
08001818180008080800101010000808080008080800FF00FF00212121000808
0800FFF7F700C6C6C6009C9C9C009C9C9C009C9C9C00E7E7E700FFF7F7000808
08002929290008080800101010000808080008080800FF00FF00292929000808
0800FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F7000808
08002929290008080800181818000808080010101000FF00FF00292929000808
0800FFF7F700C6C6C6009C9C9C009C9C9C009C9C9C00E7E7E700FFF7F7000808
08002929290008080800292929000808080010101000FF00FF00292929000808
0800FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F7000808
08002929290008080800292929000808080018181800FF00FF00292929000808
0800DE842100DE7B2100D67B1800D6731800CE731800CE6B1000CE6B10000808
08002929290008080800292929000808080029292900FF00FF00FF00FF00FF00
FF002929290008080800FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7
F700FFF7F70008080800292929000808080029292900FF00FF00FF00FF00FF00
FF002929290008080800DE842100DE7B2100D67B1800D6731800CE731800CE6B
1000CE6B100008080800292929000808080029292900FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF002929290008080800FFF7F700FFF7F700FFF7F700FFF7
F700FFF7F700FFF7F700FFF7F7000808080029292900FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF002929290008080800DE842100DE7B2100D67B1800D673
1800CE731800CE6B1000CE6B10000808080029292900FF00FF00}
ParentDoubleBuffered = False
ParentFont = False
TabOrder = 2
OnClick = btnSaveClick
end end
object cxGrid1DBTableView1FileDate: TcxGridDBColumn object btnLoad: TBitBtn
Caption = #1044#1072#1090#1072 Left = 389
DataBinding.FieldName = 'FileDate' Top = 96
Options.Editing = False Width = 135
Options.Filtering = False Height = 41
Options.Moving = False Caption = 'btnLoad'
end DoubleBuffered = True
end Font.Charset = DEFAULT_CHARSET
object cxGrid1Level1: TcxGridLevel Font.Color = clWindowText
GridView = cxGrid1DBTableView1 Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000000000000000000000000000000000000FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00944A
0000E7DEB500E7DEB500E7DEB500E7DEB500E7DEB500E7DEB500AD5A0800944A
000084420000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00A55A0800944A
0000DEDED600C66B1000DE8C3100EFDEB500DEDED600E7E7DE00AD5A0800944A
00008C420000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00A5520800944A
0000DEDED600AD5A0800C66B1000EFDEB500DEDECE00DEDED600AD5A0800944A
0000944A0000944A000084420000FF00FF00FF00FF00FF00FF00A5520800944A
0000E7E7D600DEDED600DEDED600DEDECE00DEDECE00DEDECE00AD5A0800944A
00009C520000944A00008C420000FF00FF00FF00FF00FF00FF00A5520800944A
0000944A0000944A0000944A0000944A0000944A0000944A0000944A0000944A
0000A5520800944A0000944A0000944A000084420000FF00FF00B5630800944A
0000FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700944A
0000AD5A0800944A00009C520000944A00008C420000FF00FF00BD631000944A
0000FFF7F700E7E7D600EFDEB500EFDEB500EFDEB500EFEFEF00FFF7F700944A
0000C66B1800944A0000A5520800944A0000944A0000FF00FF00BD6B1000944A
0000FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700944A
0000C6731800944A0000AD5A0800944A00009C520000FF00FF00BD6B1000944A
0000FFF7F700E7E7D600EFDEB500EFDEB500EFDEB500EFEFEF00FFF7F700944A
0000C6731800944A0000C66B1800944A0000A5520800FF00FF00C66B1000944A
0000FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700944A
0000C6731800944A0000C6731800944A0000AD5A0800FF00FF00C66B1000944A
0000E79C2900E7942900E7942100DE8C2100DE8C2100DE8C1800DE841800944A
0000C6731800944A0000C6731800944A0000C66B1800FF00FF00FF00FF00FF00
FF00C66B1800944A0000FFF7F700FFF7F700FFF7F700FFF7F700FFF7F700FFF7
F700FFF7F700944A0000C6731800944A0000C6731800FF00FF00FF00FF00FF00
FF00C66B1000944A0000E79C2900E7942900E7942100DE8C2100DE8C2100DE8C
1800DE841800944A0000C6731800944A0000C6731800FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00C66B1800944A0000FFF7F700FFF7F700FFF7F700FFF7
F700FFF7F700FFF7F700FFF7F700944A0000C6731800FF00FF00FF00FF00FF00
FF00FF00FF00FF00FF00C66B1000944A0000E79C2900E7942900E7942100DE8C
2100DE8C2100DE8C1800DE841800944A0000C66B1000FF00FF00}
ParentDoubleBuffered = False
ParentFont = False
TabOrder = 3
OnClick = btnLoadClick
end end
object btnDelete: TBitBtn
Left = 389
Top = 168
Width = 135
Height = 41
Caption = 'btnDelete'
DoubleBuffered = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
Glyph.Data = {
36060000424D3606000000000000360400002800000020000000100000000100
08000000000000020000630E0000630E00000001000000000000000000003300
00006600000099000000CC000000FF0000000033000033330000663300009933
0000CC330000FF33000000660000336600006666000099660000CC660000FF66
000000990000339900006699000099990000CC990000FF99000000CC000033CC
000066CC000099CC0000CCCC0000FFCC000000FF000033FF000066FF000099FF
0000CCFF0000FFFF000000003300330033006600330099003300CC003300FF00
330000333300333333006633330099333300CC333300FF333300006633003366
33006666330099663300CC663300FF6633000099330033993300669933009999
3300CC993300FF99330000CC330033CC330066CC330099CC3300CCCC3300FFCC
330000FF330033FF330066FF330099FF3300CCFF3300FFFF3300000066003300
66006600660099006600CC006600FF0066000033660033336600663366009933
6600CC336600FF33660000666600336666006666660099666600CC666600FF66
660000996600339966006699660099996600CC996600FF99660000CC660033CC
660066CC660099CC6600CCCC6600FFCC660000FF660033FF660066FF660099FF
6600CCFF6600FFFF660000009900330099006600990099009900CC009900FF00
990000339900333399006633990099339900CC339900FF339900006699003366
99006666990099669900CC669900FF6699000099990033999900669999009999
9900CC999900FF99990000CC990033CC990066CC990099CC9900CCCC9900FFCC
990000FF990033FF990066FF990099FF9900CCFF9900FFFF99000000CC003300
CC006600CC009900CC00CC00CC00FF00CC000033CC003333CC006633CC009933
CC00CC33CC00FF33CC000066CC003366CC006666CC009966CC00CC66CC00FF66
CC000099CC003399CC006699CC009999CC00CC99CC00FF99CC0000CCCC0033CC
CC0066CCCC0099CCCC00CCCCCC00FFCCCC0000FFCC0033FFCC0066FFCC0099FF
CC00CCFFCC00FFFFCC000000FF003300FF006600FF009900FF00CC00FF00FF00
FF000033FF003333FF006633FF009933FF00CC33FF00FF33FF000066FF003366
FF006666FF009966FF00CC66FF00FF66FF000099FF003399FF006699FF009999
FF00CC99FF00FF99FF0000CCFF0033CCFF0066CCFF0099CCFF00CCCCFF00FFCC
FF0000FFFF0033FFFF0066FFFF0099FFFF00CCFFFF00FFFFFF00000080000080
000000808000800000008000800080800000C0C0C00080808000191919004C4C
4C00B2B2B200E5E5E500C8AC2800E0CC6600F2EABF00B59B2400D8E9EC009933
6600D075A300ECC6D900646F710099A8AC00E2EFF10000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000E8E8E8E8E8E8
E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E86CE8E8
E8E8E8E8E8E8E8E8B4E8E8E8E881E8E8E8E8E8E8E8E8E8E8ACE8E8E897B46CE8
E8E8E8E8E8E8E8E8E8E8E8E881AC81E8E8E8E8E8E8E8E8E8E8E8E8E897C7B46C
E8E8E8E8E8E8E8B4E8E8E8E881E3AC81E8E8E8E8E8E8E8ACE8E8E8E8E897C090
E8E8E8E8E8E8B4E8E8E8E8E8E881E381E8E8E8E8E8E8ACE8E8E8E8E8E8E890B4
6CE8E8E8E8B46CE8E8E8E8E8E8E881AC81E8E8E8E8AC81E8E8E8E8E8E8E8E890
B46CE8E8B46CE8E8E8E8E8E8E8E8E881AC81E8E8AC81E8E8E8E8E8E8E8E8E8E8
90B46CB46CE8E8E8E8E8E8E8E8E8E8E881AC81AC81E8E8E8E8E8E8E8E8E8E8E8
E890B46CE8E8E8E8E8E8E8E8E8E8E8E8E881AC81E8E8E8E8E8E8E8E8E8E8E8E8
90B46C906CE8E8E8E8E8E8E8E8E8E8E881AC818181E8E8E8E8E8E8E8E8E8E890
B46CE8E8906CE8E8E8E8E8E8E8E8E881AC81E8E88181E8E8E8E8E8E8E890B4B4
6CE8E8E8E8906CE8E8E8E8E8E881ACAC81E8E8E8E88181E8E8E8E8E890C7B46C
E8E8E8E8E8E8906CE8E8E8E881E3AC81E8E8E8E8E8E88181E8E8E8E87A907AE8
E8E8E8E8E8E8E8E890E8E8E8AC81ACE8E8E8E8E8E8E8E8E881E8E8E8E8E8E8E8
E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8
E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8}
NumGlyphs = 2
ParentDoubleBuffered = False
ParentFont = False
TabOrder = 4
OnClick = btnDeleteClick
end end
object siLangLinked1: TsiLangLinked object siLangLinked1: TsiLangLinked
Version = '6.5.2' Version = '6.5.2'
@ -277,284 +365,59 @@ object F_Reserv: TF_Reserv
01000D000A006C00620041006C006C006F007700650064005300700061006300 01000D000A006C00620041006C006C006F007700650064005300700061006300
65000100200001000100010001000100010001000D000A006C00620055007300 65000100200001000100010001000100010001000D000A006C00620055007300
6500640053007000610063006500010020000100010001000100010001000100 6500640053007000610063006500010020000100010001000100010001000100
0D000A0054006F006F006C004200610072003100010054006F006F006C004200 0D000A0042007500740074006F006E0031000100170430043A0440044B044204
61007200310001000100010001000100010001000D000A006100520065006600 4C040100170430043A044004380442043804010043006C006F00730065000100
7200650073006800010052006500660072006500730068000100010001000100 01000100010001000D000A00620074006E005300610076006500010062007400
0100010001000D000A006100550070006C006F00610064000100170430043304 6E00530061007600650001000100010001000100010001000D000A0062007400
400443043704380442044C0420004404300439043B0420003D04300420004104 6E004C006F00610064000100620074006E004C006F0061006400010001000100
35044004320435044004010017043004320430043D0442043004360438044204 01000100010001000D000A00620074006E00440065006C006500740065000100
380420004404300439043B0420003D0430042000410435044004320435044004 620074006E00440065006C006500740065000100010001000100010001000100
0100550070006C006F00610064002000660069006C006500200074006F002000 0D000A0073007400480069006E00740073005F0055006E00690063006F006400
730065007200760065007200010001000100010001000D000A0061004C006F00 65000D000A007300740044006900730070006C00610079004C00610062006500
610064000100170430043304400443043704380442044C042000440430043904 6C0073005F0055006E00690063006F00640065000D000A007300740046006F00
3B04200041042000410435044004320435044004300401001704300432043004 6E00740073005F0055006E00690063006F00640065000D000A00540046005F00
3D0442043004360438044204380420004404300439043B042000370420004104 52006500730065007200760001005400610068006F006D006100010001000100
35044004320435044004300401004C006F00610064002000660069006C006500 01000100010001000D000A004C006100620065006C0031000100540061006800
2000660072006F006D0020007300650072007600650072000100010001000100 6F006D00610001000100010001000100010001000D000A004C00610062006500
01000D000A006100440065006C00460069006C006500460072006F006D000100 6C00320001005400610068006F006D0061000100010001000100010001000100
2304340430043B04380442044C0420004404300439043B040100120438043404 0D000A004C006100620065006C00330001005400610068006F006D0061000100
30043B0438044204380420004404300439043B040100440065006C0065007400 0100010001000100010001000D000A006C00620041006C006C006F0077006500
65002000660069006C006500010001000100010001000D000A00610054006F00 64005300700061006300650001005400610068006F006D006100010001000100
50004D000100610054006F0050004D0001000100010001000100010001000D00 01000100010001000D000A006C00620055007300650064005300700061006300
0A006100460072006F006D0050004D0001006100460072006F006D0050004D00 650001005400610068006F006D00610001000100010001000100010001000D00
01000100010001000100010001000D000A006100450078006900740001006100 0A0042007500740074006F006E00310001005400610068006F006D0061000100
450078006900740001000100010001000100010001000D000A00630078004700 0100010001000100010001000D000A00620074006E0053006100760065000100
7200690064003100440042005400610062006C00650056006900650077003100 5400610068006F006D00610001000100010001000100010001000D000A006200
460069006C0065004E0061006D0065000100460069006C0065004E0061006D00 74006E004C006F006100640001005400610068006F006D006100010001000100
650001000100010001000100010001000D000A00630078004700720069006400 01000100010001000D000A00620074006E00440065006C006500740065000100
3100440042005400610062006C00650056006900650077003100460069006C00 5400610068006F006D00610001000100010001000100010001000D000A007300
6500530069007A0065000100460069006C006500530069007A00650001000100 74004D0075006C00740069004C0069006E00650073005F0055006E0069006300
010001000100010001000D000A00630078004700720069006400310044004200 6F00640065000D000A007300740053007400720069006E00670073005F005500
5400610062006C00650056006900650077003100460069006C00650044006100 6E00690063006F00640065000D000A00730074004F0074006800650072005300
740065000100460069006C006500440061007400650001000100010001000100 7400720069006E00670073005F0055006E00690063006F00640065000D000A00
010001000D000A0073007400480069006E00740073005F0055006E0069006300 7300740043006F006C006C0065006300740069006F006E0073005F0055006E00
6F00640065000D000A0054006F006F006C0042007500740074006F006E003300 690063006F00640065000D000A00730074004300680061007200530065007400
0100170430043304400443043704380442044C0420004404300439043B042000 73005F0055006E00690063006F00640065000D000A00540046005F0052006500
410420004104350440043204350440043004010017043004320430043D044204 73006500720076000100440045004600410055004C0054005F00430048004100
3004360438044204380420004404300439043B04200037042000410435044004 520053004500540001000100010001000100010001000D000A004C0061006200
320435044004300401004C006F00610064002000660069006C00650020006600 65006C0031000100440045004600410055004C0054005F004300480041005200
72006F006D002000730065007200760065007200010001000100010001000D00 53004500540001000100010001000100010001000D000A004C00610062006500
0A0054006F006F006C0042007500740074006F006E00360001001E0442043A04 6C0032000100440045004600410055004C0054005F0043004800410052005300
40044B0442044C0420004404300439043B042000320420003F04400438043B04 4500540001000100010001000100010001000D000A004C006100620065006C00
3E04360435043D043804380401001204560434043A0440043804420438042000 33000100440045004600410055004C0054005F00430048004100520053004500
4404300439043B042000320420003F0440043E043304400430043C0456042000 540001000100010001000100010001000D000A006C00620041006C006C006F00
01004F00700065006E002000660069006C006500200069006E00200061007000 770065006400530070006100630065000100440045004600410055004C005400
70006C00690063006100740069006F006E00010001000100010001000D000A00
54006F006F006C0042007500740074006F006E003700010021043E0445044004
30043D04380442044C042000420435043A04430449043804390420003F044004
3E0435043A04420420003D043004200041043504400432043504400401001704
310435044004350433044204380420003F043E0442043E0447043D0438043904
20003F0440043E0435043A04420420003D043004200041043504400432043504
40040100550070006C006F00610064002000630075007200720065006E007400
2000700072006F006A00650063007400200074006F0020007300650072007600
65007200010001000100010001000D000A006100520065006600720065007300
680001001E0431043D043E043204380442044C04200041043F04380441043E04
3A0420004404300439043B043E04320401001F043E043D043E04320438044204
3804200041043F04380441043E043A0420004404300439043B04560432040100
52006500660072006500730068002000660069006C006500730020006C006900
73007400010001000100010001000D000A006100550070006C006F0061006400
0100170430043304400443043704380442044C0420004404300439043B042000
3D0430042000410435044004320435044004010017043004320430043D044204
3004360438044204380420004404300439043B0420003D043004200041043504
40043204350440040100550070006C006F00610064002000660069006C006500
200074006F002000730065007200760065007200010001000100010001000D00
0A006100440065006C00460069006C006500460072006F006D00010023043404
30043B04380442044C0420004404300439043B04010012043804340430043B04
38044204380420004404300439043B040100440065006C006500740065002000
660069006C006500010001000100010001000D000A0061004500780069007400
010012044B0445043E0434040100120438044504560434040100450078006900
7400010001000100010001000D000A007300740044006900730070006C006100
79004C006100620065006C0073005F0055006E00690063006F00640065000D00
0A00460069006C0065005400610062006C006500460069006C00650053006900
7A0065000100460069006C006500530069007A00650001000100010001000100
010001000D000A00460069006C0065005400610062006C006500460069006C00
650044006100740065000100460069006C006500440061007400650001000100
010001000100010001000D000A00460069006C0065005400610062006C006500
3100460069006C006500530069007A0065000100460069006C00650053006900
7A00650001000100010001000100010001000D000A00460069006C0065005400
610062006C0065003100460069006C0065004400610074006100010046006900
6C006500440061007400610001000100010001000100010001000D000A007300
740046006F006E00740073005F0055006E00690063006F00640065000D000A00
540046005F0052006500730065007200760001005400610068006F006D006100
01000100010001000100010001000D000A004C006100620065006C0031000100
5400610068006F006D00610001000100010001000100010001000D000A004C00
6100620065006C00320001005400610068006F006D0061000100010001000100
0100010001000D000A004C006100620065006C00330001005400610068006F00
6D00610001000100010001000100010001000D000A006C00620041006C006C00
6F007700650064005300700061006300650001005400610068006F006D006100
01000100010001000100010001000D000A006C00620055007300650064005300
700061006300650001005400610068006F006D00610001000100010001000100
010001000D000A00730074004D0075006C00740069004C0069006E0065007300
5F0055006E00690063006F00640065000D000A00730074005300740072006900
6E00670073005F0055006E00690063006F00640065000D000A00730074004F00
740068006500720053007400720069006E00670073005F0055006E0069006300
6F00640065000D000A00460069006C0065005400610062006C0065002E004300
75007200720065006E007400560065007200730069006F006E00010039002E00
30003000200001000100010001000100010001000D000A00460069006C006500
5400610062006C00650031002E00560065007200730069006F006E0001003700
2E00370034002E00300030002000500072006F00660065007300730069006F00
6E0061006C002000450064006900740069006F006E0001000100010001000100
010001000D000A007300740043006F006C006C0065006300740069006F006E00
73005F0055006E00690063006F00640065000D000A00460069006C0065005400
610062006C0065002E0049006E0064006500780044006500660073005B003000
5D002E0044006500730063004600690065006C00640073000100460069006C00
65004E0061006D00650001000100010001000100010001000D000A0046006900
6C0065005400610062006C0065002E0049006E00640065007800440065006600
73005B0030005D002E004600690065006C00640073000100460069006C006500
4E0061006D00650001000100010001000100010001000D000A00730074004300
68006100720053006500740073005F0055006E00690063006F00640065000D00
0A00540046005F00520065007300650072007600010044004500460041005500
4C0054005F004300480041005200530045005400010001000100010001000100
01000D000A004C006100620065006C0031000100440045004600410055004C00
54005F0043004800410052005300450054000100010001000100010001000100
0D000A004C006100620065006C0032000100440045004600410055004C005400
5F00430048004100520053004500540001000100010001000100010001000D00 5F00430048004100520053004500540001000100010001000100010001000D00
0A004C006100620065006C0033000100440045004600410055004C0054005F00 0A006C0062005500730065006400530070006100630065000100440045004600
430048004100520053004500540001000100010001000100010001000D000A00 410055004C0054005F0043004800410052005300450054000100010001000100
6C00620041006C006C006F007700650064005300700061006300650001004400 0100010001000D000A0042007500740074006F006E0031000100440045004600
410055004C0054005F0043004800410052005300450054000100010001000100
0100010001000D000A00620074006E0053006100760065000100440045004600
410055004C0054005F0043004800410052005300450054000100010001000100
0100010001000D000A00620074006E004C006F00610064000100440045004600
410055004C0054005F0043004800410052005300450054000100010001000100
0100010001000D000A00620074006E00440065006C0065007400650001004400
45004600410055004C0054005F00430048004100520053004500540001000100 45004600410055004C0054005F00430048004100520053004500540001000100
010001000100010001000D000A006C0062005500730065006400530070006100 010001000100010001000D000A00}
630065000100440045004600410055004C0054005F0043004800410052005300
4500540001000100010001000100010001000D000A00}
end
object DataSource1: TDataSource
DataSet = FileTable
Left = 136
Top = 56
end
object FileTable: TSQLMemTable
CurrentVersion = '9.00 '
StoreDefs = True
DatabaseName = 'MEMORY'
ReadOnly = False
CaseInsensitive = False
IndexDefs = <
item
Name = 'FileTableIndex1'
DescFields = 'FileName'
Fields = 'FileName'
Options = [ixDescending]
end>
FieldDefs = <
item
Name = 'FileName'
DataType = ftString
Size = 255
end
item
Name = 'FileSize'
DataType = ftString
Size = 20
end
item
Name = 'FileDate'
DataType = ftString
Size = 20
end>
TableName = 'Table1997262626_14648'
Exclusive = False
MemoryTableAllocBy = 1000
Left = 256
Top = 64
object FileTableFileName: TStringField
FieldName = 'FileName'
Size = 255
end
object FileTableFileSize: TStringField
FieldName = 'FileSize'
end
object FileTableFileDate: TStringField
FieldName = 'FileDate'
end
end
object ActionList1: TActionList
Images = FSCS_Main.imagePanel
Left = 464
Top = 120
object aRefresh: TAction
Caption = 'Refresh'
Hint = #1054#1073#1085#1086#1074#1080#1090#1100' '#1089#1087#1080#1089#1086#1082' '#1092#1072#1081#1083#1086#1074
ImageIndex = 96
OnExecute = aRefreshExecute
end
object aUpload: TAction
Caption = #1047#1072#1075#1088#1091#1079#1080#1090#1100' '#1092#1072#1081#1083' '#1085#1072' '#1089#1077#1088#1074#1077#1088
Hint = #1047#1072#1075#1088#1091#1079#1080#1090#1100' '#1092#1072#1081#1083' '#1085#1072' '#1089#1077#1088#1074#1077#1088
ImageIndex = 1
OnExecute = aUploadExecute
end
object aLoad: TAction
Caption = #1047#1072#1075#1088#1091#1079#1080#1090#1100' '#1092#1072#1081#1083' '#1089' '#1089#1077#1088#1074#1077#1088#1072
ImageIndex = 2
OnExecute = aLoadExecute
end
object aDelFileFrom: TAction
Caption = #1059#1076#1072#1083#1080#1090#1100' '#1092#1072#1081#1083
Hint = #1059#1076#1072#1083#1080#1090#1100' '#1092#1072#1081#1083
ImageIndex = 50
OnExecute = aDelFileFromExecute
end
object aToPM: TAction
Caption = 'aToPM'
OnExecute = aToPMExecute
end
object aFromPM: TAction
Caption = 'aFromPM'
OnExecute = aFromPMExecute
end
object aExit: TAction
Caption = 'aExit'
Hint = #1042#1099#1093#1086#1076
ImageIndex = 9
ShortCut = 27
OnExecute = aExitExecute
end
end
object PopupMenu1: TPopupMenu
Left = 256
Top = 176
object N1: TMenuItem
Action = aLoad
end
object N2: TMenuItem
Action = aUpload
end
object aDelete1: TMenuItem
Action = aDelFileFrom
end
end
object FileTable1: TkbmMemTable
Active = True
DesignActivation = True
AttachedAutoRefresh = True
AttachMaxCount = 1
FieldDefs = <
item
Name = 'FileName'
DataType = ftString
Size = 256
end
item
Name = 'FileSize'
DataType = ftString
Size = 20
end
item
Name = 'FileData'
DataType = ftString
Size = 20
end>
IndexDefs = <>
SortOptions = []
PersistentBackup = False
ProgressFlags = [mtpcLoad, mtpcSave, mtpcCopy]
LoadedCompletely = False
SavedCompletely = False
FilterOptions = []
Version = '7.74.00 Professional Edition'
LanguageID = 0
SortID = 0
SubLanguageID = 1
LocaleID = 1024
Left = 368
Top = 56
object FileTable1FileName: TStringField
FieldName = 'FileName'
Size = 256
end
object FileTable1FileSize: TStringField
FieldName = 'FileSize'
end
object FileTable1FileData: TStringField
FieldName = 'FileData'
end
end
object Query1: TQuery
Left = 352
Top = 216
end
object MemSQL1: TkbmMemSQL
Left = 400
Top = 192
end end
end end

View File

@ -8,74 +8,28 @@ uses
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdExplicitTLSClientServerBase, IdFTP, idUri, idFTPCommon,idFTPLIST, IdAllFTPListParsers, IdExplicitTLSClientServerBase, IdFTP, idUri, idFTPCommon,idFTPLIST, IdAllFTPListParsers,
IdFTPListParseBase,IdFTPListParseAS400, IdFTPListParsePcTcp, IdFTPListTypes, IdFTPListParseBase,IdFTPListParseAS400, IdFTPListParsePcTcp, IdFTPListTypes,
Wininet, siComp, siLngLnk, Grids, DBGrids, RzDBGrid, DB, SQLMemMain, Wininet, siComp, siLngLnk;
cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles,
cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxGridCustomView, cxGrid, ExtCtrls, RzPanel, ActnList,
PlatformDefaultStyleActnCtrls, ActnMan, ToolWin, ActnCtrls, ComCtrls, acDBGrid,
Menus, kbmMemTable, kbmMemSQL, DBTables;
type type
TF_Reserv = class(TForm) TF_Reserv = class(TForm)
Button1: TButton;
ListBox1: TListBox;
btnSave: TBitBtn;
btnLoad: TBitBtn;
btnDelete: TBitBtn;
Label1: TLabel; Label1: TLabel;
Label2: TLabel; Label2: TLabel;
Label3: TLabel; Label3: TLabel;
lbAllowedSpace: TLabel; lbAllowedSpace: TLabel;
lbUsedSpace: TLabel; lbUsedSpace: TLabel;
siLangLinked1: TsiLangLinked; siLangLinked1: TsiLangLinked;
DataSource1: TDataSource; procedure Button1Click(Sender: TObject);
FileTable: TSQLMemTable;
FileTableFileSize: TStringField;
FileTableFileDate: TStringField;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ActionList1: TActionList;
aRefresh: TAction;
aUpload: TAction;
aLoad: TAction;
aDelFileFrom: TAction;
aExit: TAction;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
aDelete1: TMenuItem;
FileTable1: TkbmMemTable;
aToPM: TAction;
aFromPM: TAction;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
FileTableFileName: TStringField;
Query1: TQuery;
FileTable1FileName: TStringField;
FileTable1FileSize: TStringField;
FileTable1FileData: TStringField;
MemSQL1: TkbmMemSQL;
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGrid1DBTableView1FileName: TcxGridDBColumn;
cxGrid1DBTableView1FileSize: TcxGridDBColumn;
cxGrid1DBTableView1FileDate: TcxGridDBColumn;
//procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
//procedure btnSaveClick(Sender: TObject); procedure btnSaveClick(Sender: TObject);
//procedure btnLoadClick(Sender: TObject); procedure btnLoadClick(Sender: TObject);
//procedure btnDeleteClick(Sender: TObject); procedure btnDeleteClick(Sender: TObject);
procedure aRefreshExecute(Sender: TObject);
procedure aUploadExecute(Sender: TObject);
procedure aExitExecute(Sender: TObject);
procedure aLoadExecute(Sender: TObject);
procedure aDelFileFromExecute(Sender: TObject);
procedure aToPMExecute(Sender: TObject);
procedure aFromPMExecute(Sender: TObject);
//procedure RzDBGrid1TitleClick(Column: TColumn);
private private
{ Private declarations } { Private declarations }
public public
@ -85,11 +39,9 @@ type
function GetFileListFromFtp(aFtpStr: string): TStringList; function GetFileListFromFtp(aFtpStr: string): TStringList;
function DeleteFileFromFtp(aFtpStr, aFileName: string): boolean; function DeleteFileFromFtp(aFtpStr, aFileName: string): boolean;
Procedure RefreshFileList; Procedure RefreshFileList;
//Procedure SetButtons(aSave, aLoad, aDelete: Boolean); Procedure SetButtons(aSave, aLoad, aDelete: Boolean);
Procedure SelectItem; Procedure SelectItem;
Function HexToStr(const HexStr: string): string; Function HexToStr(const HexStr: string): string;
function SaveCurrProjToTemFile: boolean;
//function GetTempDir: string;
end; end;
var var
@ -97,88 +49,13 @@ var
Selected_Item: integer; Selected_Item: integer;
FClientLimit: integer; // Ëèìèò êëèåíòà íà äèñêîâîå ïðîñòðàíñòâî íà ñåðâàêå, ÌÁ FClientLimit: integer; // Ëèìèò êëèåíòà íà äèñêîâîå ïðîñòðàíñòâî íà ñåðâàêå, ÌÁ
FFact: Integer; // Çàíÿòî êëèåíòîì íà ñåðâåðå, ÌÁ FFact: Integer; // Çàíÿòî êëèåíòîì íà ñåðâåðå, ÌÁ
FileDateList: TStringList;
FileSizeList: TStringList;
MyHeaderStyle: TcxStyle;
//FConnStr: string; //FConnStr: string;
implementation implementation
uses USCS_Main, U_Common, U_BaseCommon, U_BaseConstants, U_ProtectionCommon, U_Main, U_SCSComponent; uses USCS_Main, U_Common, U_BaseCommon, U_BaseConstants;
{$R *.dfm} {$R *.dfm}
(*
function GetTempDir: string;
var
buff: pchar;
s: string;
begin
if length(TempDir) > 0 then
begin
if DirectoryExists(TempDir) then
Result := TempDir
else
begin
TempDir := '';
Result := GetTempDir;
end;
end
else
begin
// Tolik 24/06/* 2019 --
s := GetEnvironmentVariable('tmp');
if ((s = '') or (not DirectoryExists(s))) then
s := GetEnvironmentVariable('temp');
if ((s = '') or (not DirectoryExists(s))) then
s := exedir;
(*
// Tolik 21/06/2019 --
getmem(buff, 256*2);
//
s := '';
if (GetEnvironmentVariable('tmp',buff, 254) >0)
and (DirectoryExists(buff)) then
begin
s := buff;
end
else
if (GetEnvironmentVariable('temp',buff, 254) >0)
and (DirectoryExists(buff)) then
begin
s := buff;
end
else
s := exedir;
freemem(buff);
*)
(* try
if not DirectoryExists(s + OurTempDir) then
MkDir(s + OurTempDir);
TempDir := s + OurTempDir;
result := TempDir;
except
ShowMessage(cTmpDirErr);
{$if Defined(ES_GRAPH_SC)}
Application.Terminate;
{$else}
ExitProcess(1);
{$ifend}
end;
end;
end;
*)
function TF_Reserv.SaveCurrProjToTemFile: boolean;
var TempProj: TSCSProject;
CurrProjNode: TTreeNode;
begin
CurrProjNode := F_ProjMan.GSCSBase.CurrProject.TreeViewNode;
Result := false;
end;
function TF_Reserv.HexToStr(const HexStr: string): string; function TF_Reserv.HexToStr(const HexStr: string): string;
var var
i: Integer; i: Integer;
@ -195,7 +72,7 @@ end;
Procedure TF_Reserv.SelectItem; Procedure TF_Reserv.SelectItem;
var i: integer; var i: integer;
begin begin
{if F_Reserv.ListBox1.Count > 0 then if F_Reserv.ListBox1.Count > 0 then
begin begin
for i := 0 to F_Reserv.ListBox1.Count - 1 do for i := 0 to F_Reserv.ListBox1.Count - 1 do
begin begin
@ -210,141 +87,13 @@ begin
end end
else else
Selected_Item := 0; Selected_Item := 0;
}
end; end;
(*
Procedure TF_Reserv.SetButtons(aSave, aLoad, aDelete: Boolean); Procedure TF_Reserv.SetButtons(aSave, aLoad, aDelete: Boolean);
begin begin
{
F_Reserv.btnSave.Enabled := aSave; F_Reserv.btnSave.Enabled := aSave;
F_Reserv.btnLoad.Enabled := aLoad; F_Reserv.btnLoad.Enabled := aLoad;
F_Reserv.btnDelete.Enabled := aDelete; F_Reserv.btnDelete.Enabled := aDelete;
}
end;
*)
procedure TF_Reserv.aUploadExecute(Sender: TObject);
var OpenDlg: TOpenDialog;
FileNameShort, Filename: string;
i: integer;
begin
OpenDlg := TOpenDialog.Create(nil);
OpenDlg.Filter := ' (*.scs)|*.SCS';
if OpenDlg.Execute then
begin
FileName := OpenDlg.FileName;
if SendFileToFtp(HexToStr(GFtpConnectStr), FileName) then
RefreshFileList;
end;
OpenDlg.Free;
end;
procedure TF_Reserv.aDelFileFromExecute(Sender: TObject);
begin
if DeleteFileFromFtp(HexToStr(GFtpConnectStr), f_Reserv.filetable.fieldvalues['filename']) then
begin
RefreshFileList;
end;
end;
procedure TF_Reserv.aExitExecute(Sender: TObject);
begin
F_Reserv.Close;
end;
procedure TF_Reserv.aFromPMExecute(Sender: TObject);
var tdir: string;
canProceed, formHide: Boolean;
fName: String;
begin
if CheckIsOpenProject(false) then
begin
tdir := '';
tdir := GetTempDir;
if tdir <> '' then
begin
FName := tdir + '\'+ F_ProjMan.GSCSBase.CurrProject.Name + '.scs';
if FileExists(FName) then
DeleteFile(FName);
if F_ProjMan.GSCSBase.CurrProject.SaveToStreamOrFile(nil, FName) then
begin
if SendFileToFtp(HexToStr(GFtpConnectStr), FName) then
RefreshFileList;
end;
if FileExists(FName) then
DeleteFile(FName);
end;
end
else
ShowMessage('');
end;
procedure TF_Reserv.aLoadExecute(Sender: TObject);
var SaveDlg: TSaveDialog;
FileName: string;
i: integer;
begin
FileName := '';
FileName := FileTable.fieldvalues['FileName'];
if fileName <> '' then
begin
SaveDlg := TSaveDialog.Create(nil);
SaveDlg.Filter := ' (*.scs)|*.SCS';
SaveDlg.FileName := fileName;
if SaveDlg.Execute then
begin
FileName := SaveDlg.FileName;
GetFileFromFtp(HexToStr(GFtpConnectStr), extractfilename(FileName), SaveDlg.FileName);
end;
SaveDlg.Free;
end;
end;
procedure TF_Reserv.aRefreshExecute(Sender: TObject);
begin
RefreshFileList;
end;
procedure TF_Reserv.aToPMExecute(Sender: TObject);
var tdir: string;
canProceed, formHide: Boolean;
begin
tdir := '';
tdir := GetTempDir;
if tdir <> '' then
begin
CanProceed := False;
formHide := False;
if CheckIsOpenProject(false) then
begin
if MessageBox(F_Reserv.Handle, PChar(cFtpmes7), PChar(cWarningSlowCap), MB_YESNO) = IDYes then
begin
F_Reserv.Hide;
formHide := True;
CanProceed := CloseCurrProject(true) <> IDCancel;
end;
end
else
CanProceed := True;
if CanProceed then
begin
GetFileFromFtp(HexToStr(GFtpConnectStr), FileTable.FieldValues['FileName'], tdir + '\'+ FileTable.FieldValues['FileName']);
if FileExists(tdir + '\'+ FileTable.FieldValues['FileName']) then
begin
F_ProjMan.LoadProjectFromFile(tdir + '\'+ FileTable.FieldValues['FileName']);
DeleteFile(tdir + '\'+ FileTable.FieldValues['FileName']);
F_Reserv.Close;
end;
end
else
begin
if formHide then
F_Reserv.ShowModal;
end;
end;
end; end;
Procedure TF_Reserv.RefreshFileList; Procedure TF_Reserv.RefreshFileList;
@ -359,10 +108,7 @@ begin
vLoad := False; vLoad := False;
vDelete := False; vDelete := False;
//FConnStr := HexToStr(GFtpConnectStr); //FConnStr := HexToStr(GFtpConnectStr);
//F_Reserv.ListBox1.Clear; F_Reserv.ListBox1.Clear;
f_Reserv.FileTable.Close;
f_Reserv.FileTable.Open;
tmppath := GetDefaultTempPath;//+'\' + 'USER.CFG'; tmppath := GetDefaultTempPath;//+'\' + 'USER.CFG';
{ FileList := F_Reserv.GetFileListFromFtp(GFtpConnectStr); { FileList := F_Reserv.GetFileListFromFtp(GFtpConnectStr);
if FileList <> nil then if FileList <> nil then
@ -396,100 +142,39 @@ begin
CloseFile(f); CloseFile(f);
UserLimit := strtoint(s); UserLimit := strtoint(s);
lballowedspace.Caption := s; lballowedspace.Caption := s;
//vSave := true; vSave := true;
//vLoad := true; vLoad := true;
//vDelete := true; vDelete := true;
//// ////
FileList := F_Reserv.GetFileListFromFtp(HexToStr(GFtpConnectStr)); FileList := F_Reserv.GetFileListFromFtp(HexToStr(GFtpConnectStr));
if FileList <> nil then if FileList <> nil then
begin begin
//FileTable.ReadOnly := False; F_Reserv.ListBox1.Clear;
// F_Reserv.FileTable.EmptyTable;
While F_Reserv.FileTable.RecordCount > 0 do
begin
F_Reserv.FileTable.Delete;
end;
//F_Reserv.ListBox1.Clear;
for i := 0 to fileList.Count - 1 do // Client Config for i := 0 to fileList.Count - 1 do // Client Config
begin begin
//F_Reserv.ListBox1.AddItem(filelist[i], nil); F_Reserv.ListBox1.AddItem(filelist[i], nil);
F_Reserv.FileTable.Append;
F_Reserv.FileTable.FieldByName('FileName').AsString := FileList[i];
F_Reserv.FileTable.FieldByName('FileDate').AsString := FileDateList[i];
F_Reserv.FileTable.FieldByName('FileSize').AsString := FileSizeList[i];
end; end;
//FileTable.ReadOnly := True; if F_Reserv.ListBox1.Items.Count = 0 then
//if F_Reserv.ListBox1.Items.Count = 0 then
F_Reserv.aDelFileFrom.Enabled := True;
F_Reserv.aLoad.Enabled := True;
F_Reserv.aToPM.Enabled := True;
if F_Reserv.FileTable.RecordCount = 0 then
begin begin
F_Reserv.aDelFileFrom.Enabled := False; vDelete := False;
F_Reserv.aLoad.Enabled := False; vLoad := False;
F_Reserv.aToPM.Enabled := False;
end
else
begin
F_Reserv.FileTable.First;
F_Reserv.cxGrid1DBTableView1.Controller.FocusedRowIndex := 0;
end; end;
//F_Reserv.FileTable.First; SelectItem;
//SelectItem;
fileList.Free; fileList.Free;
if UserLimit <= strtoint(lbUsedSpace.Caption) then if UserLimit >= strtoint(lbUsedSpace.Caption) then
begin vSave := True
F_Reserv.aUpload.Enabled := False;
F_Reserv.aFromPM.Enabled := False;
end
else else
begin vSave := False;
F_Reserv.aUpload.Enabled := True;
//F_Reserv.aFromPM.Enabled := True;
if CheckIsOpenProject(false) then
F_Reserv.aFromPM.Enabled := True
else
F_Reserv.aFromPM.Enabled := False;
end; end;
end
else
begin
F_Reserv.aDelFileFrom.Enabled := False;
F_Reserv.aLoad.Enabled := False;
F_Reserv.aToPM.Enabled := False;
F_Reserv.aUpload.Enabled := False;
F_Reserv.aFromPM.Enabled := False;
Showmessage('cFtpmes12');
end; end;
end SetButtons(vSave, vLoad, vDelete);
else
begin
F_Reserv.aDelFileFrom.Enabled := False;
F_Reserv.aLoad.Enabled := False;
F_Reserv.aToPM.Enabled := False;
F_Reserv.aUpload.Enabled := False;
F_Reserv.aFromPM.Enabled := False;
Showmessage('cFtpmes12');
end; end;
//SetButtons(vSave, vLoad, vDelete);
end;
{
procedure TF_Reserv.RzDBGrid1TitleClick(Column: TColumn);
var FldName: string;
begin
FldName := Column.FieldName;
FileTable.IndexName := 'Filename';
end;
}
function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean; function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
var NameShort, NewName: String; var NameShort: String;
Ftp_serv: TIdFtp; Ftp_serv: TIdFtp;
Uri: TIdURI; Uri: TIdURI;
bm: TBookmark;
FileNameExists: Boolean;
i: integer;
begin begin
Result := False; Result := False;
if FileExists(aFileName) then if FileExists(aFileName) then
@ -502,7 +187,7 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
ftp_serv.Password := uri.password; ftp_serv.Password := uri.password;
ftp_serv.Port := 21; ftp_serv.Port := 21;
ftp_serv.Passive := true; ftp_serv.Passive := true;
ftp_serv.TransferType := ftBinary;
try try
ftp_serv.Connect; ftp_serv.Connect;
except except
@ -519,59 +204,6 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
if ftp_serv.Connected then if ftp_serv.Connected then
begin begin
NameShort := ExtractFileName(aFileName); NameShort := ExtractFileName(aFileName);
if F_Reserv.FileTable.RecordCount > 0 then //ïðîâåðêà íà íàëè÷èå ôàéëà íà ñåðâåðå
begin
FileNameExists := false;
bm := F_Reserv.FileTable.Bookmark;
F_Reserv.FileTable.DisableControls;
F_Reserv.FileTable.First;
while not F_Reserv.FileTable.Eof do
begin
if NameShort = F_Reserv.FileTable.FieldValues['FileName'] then
begin
FileNameExists := true;
break;
end;
F_Reserv.FileTable.Next;
end;
F_Reserv.FileTable.Bookmark := bm;
F_Reserv.FileTable.EnableControls;
end;
if FileNameExists then // åñëè òàêîå èìÿ íà ñåðâàêå åñòü - çàïðîñèòü ó ïîëüçîâàòåëÿ äåéñòâèå
begin // èëè ïåðåçàïèñàòü èëè çàïèñàòü ñ äðóãèì èìåíåì
if MessageBox(F_Reserv.Handle, PChar(cFtpmes8), PChar(cWarningSlowCap), MB_YESNO) <> IDYes then
begin
NameShort := Trim(InputBox(cFtpmes9, cFtpmes10, ''));
if length(NameShort) > 0 then
begin
NewName := '';
for i := 1 to Length(NameShort) do
begin
if NameShort[i] = '.' then
break
else
NewName := NewName + NameShort[i];
end;
if NewName <> '' then
NameShort := NewName + '.scs'
else
begin
ShowMessage(cFtpmes11);
ftp_serv.Disconnect;
ftp_serv.Free;
URi.Free;
exit;
end;
end;
end
else
DeleteFileFromFtp(aFtpStr, aFileName); //åñëè ïåðåçàïèñàòü, òî óäàëèòü êîïèþ
end;
try try
ftp_serv.Put(aFileName, NameShort); ftp_serv.Put(aFileName, NameShort);
Result := True; Result := True;
@ -605,7 +237,6 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
ftp_serv.Password := uri.password; ftp_serv.Password := uri.password;
ftp_serv.Port := 21; ftp_serv.Port := 21;
ftp_serv.Passive := true; ftp_serv.Passive := true;
ftp_serv.TransferType := ftBinary;
try try
ftp_serv.Connect; ftp_serv.Connect;
@ -663,7 +294,7 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
var var
Ftp_serv: TIdFtp; Ftp_serv: TIdFtp;
Uri: TIdURI; Uri: TIdURI;
Size, FileSize: Double; Size: Double;
i, rsize: integer; i, rsize: integer;
begin begin
Result := TstringList.Create; Result := TstringList.Create;
@ -700,10 +331,7 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
Size := 0; Size := 0;
for i := 0 to ftp_serv.DirectoryListing.Count - 1 do for i := 0 to ftp_serv.DirectoryListing.Count - 1 do
begin begin
FileSize := ftp_serv.Size(ftp_serv.DirectoryListing[i].FileName); Size := Size + ftp_serv.Size(ftp_serv.DirectoryListing[i].FileName);
Size := Size + FileSize;
FileDateList.Add(DateTostr(ftp_serv.FileDate(ftp_serv.DirectoryListing[i].FileName)));
FileSizeList.Add(FloatToStr(RoundX(FileSize/1048576, 3)));
end; end;
rsize := round(size/1048576); rsize := round(size/1048576);
lbUsedSpace.Caption := inttostr(rsize); lbUsedSpace.Caption := inttostr(rsize);
@ -774,13 +402,10 @@ function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
URi.Free; URi.Free;
end; end;
(*
procedure TF_Reserv.btnDeleteClick(Sender: TObject); procedure TF_Reserv.btnDeleteClick(Sender: TObject);
var i: integer; var i: integer;
begin begin
i := f_Reserv.RzDBGrid1.SelectedIndex;
i := 0;
{
if ListBox1.Count > 0 then if ListBox1.Count > 0 then
begin begin
for i := 0 to ListBox1.Count - 1 do for i := 0 to ListBox1.Count - 1 do
@ -796,17 +421,14 @@ begin
end; end;
end; end;
end; end;
}
end; end;
*)
(*
procedure TF_Reserv.btnLoadClick(Sender: TObject); procedure TF_Reserv.btnLoadClick(Sender: TObject);
var SaveDlg: TSaveDialog; var SaveDlg: TSaveDialog;
FileName: string; FileName: string;
i: integer; i: integer;
begin begin
FileName := ''; FileName := '';
{
for i := 0 to ListBox1.Count - 1 do for i := 0 to ListBox1.Count - 1 do
begin begin
if ListBox1.Selected[i] = true then if ListBox1.Selected[i] = true then
@ -815,7 +437,6 @@ begin
break; break;
end; end;
end; end;
}
if fileName <> '' then if fileName <> '' then
begin begin
SaveDlg := TSaveDialog.Create(nil); SaveDlg := TSaveDialog.Create(nil);
@ -829,15 +450,13 @@ begin
SaveDlg.Free; SaveDlg.Free;
end; end;
end; end;
*)
(*
procedure TF_Reserv.btnSaveClick(Sender: TObject); procedure TF_Reserv.btnSaveClick(Sender: TObject);
var OpenDlg: TOpenDialog; var OpenDlg: TOpenDialog;
FileNameShort, Filename: string; FileNameShort, Filename: string;
i: integer; i: integer;
begin begin
{
for i := 0 to ListBox1.Count - 1 do for i := 0 to ListBox1.Count - 1 do
begin begin
if ListBox1.Selected[i] = true then if ListBox1.Selected[i] = true then
@ -846,7 +465,6 @@ begin
break; break;
end; end;
end; end;
}
OpenDlg := TOpenDialog.Create(nil); OpenDlg := TOpenDialog.Create(nil);
OpenDlg.Filter := ' (*.scs)|*.SCS'; OpenDlg.Filter := ' (*.scs)|*.SCS';
if OpenDlg.Execute then if OpenDlg.Execute then
@ -858,42 +476,37 @@ begin
end; end;
OpenDlg.Free; OpenDlg.Free;
end; end;
*)
{procedure TF_Reserv.Button1Click(Sender: TObject); procedure TF_Reserv.Button1Click(Sender: TObject);
begin begin
F_Reserv.Close; F_Reserv.Close;
end; end;
}
procedure TF_Reserv.FormCreate(Sender: TObject); procedure TF_Reserv.FormCreate(Sender: TObject);
begin begin
FileDateList := TStringList.Create;
FileSizeList := TStringList.Create;
{ {
btnSave.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' íà ñåðâåð'; btnSave.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' íà ñåðâåð';
btnLoad.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' ñ ñåðâåðà'; btnLoad.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' ñ ñåðâåðà';
btnDelete.Caption := 'Óäàëèòü ôàéë' + #13#10 + ' íà ñåðâåðå'; btnDelete.Caption := 'Óäàëèòü ôàéë' + #13#10 + ' íà ñåðâåðå';
} }
{btnSave.Caption := cFtpbtnSaveCaption; btnSave.Caption := cFtpbtnSaveCaption;
btnLoad.Caption := cFtpbtnLoadCaption; btnLoad.Caption := cFtpbtnLoadCaption;
btnDelete.Caption := cFtpbtnDeleteCaption;} btnDelete.Caption := cFtpbtnDeleteCaption;
Selected_Item := 0; Selected_Item := 0;
FClientLimit := 0; FClientLimit := 0;
FFact := 0; FFact := 0;
lballowedspace.Font.Color := clBlue; lballowedspace.Font.Color := clBlue;
lbUsedSpace.Font.Color := clBlue; lbUsedSpace.Font.Color := clBlue;
MyHeaderStyle := TcxStyle.Create(nil);
MyHeaderStyle.Font.Style := [fsBold];
cxGrid1DBTableView1.Styles.Header := MyHeaderStyle;
end; end;
procedure TF_Reserv.FormShow(Sender: TObject); procedure TF_Reserv.FormShow(Sender: TObject);
var FileList: TStringList; var FileList: TStringList;
i: integer; i: integer;
begin begin
FileDateList.Clear;
FileSizeList.Clear;
RefreshFileList; RefreshFileList;
//SelectItem; //SelectItem;
end; end;
end. end.

View File

@ -3,7 +3,7 @@ interface
uses uses
Windows, Forms, Graphics, Registry, Classes, SysUtils, Messages,{ bz2,} Dialogs, Windows, Forms, Graphics, Registry, Classes, SysUtils, Messages,{ bz2,} Dialogs,
ComCtrls, ShlObj, ShellAPI, Controls, IcsPlus, Printers, ComCtrls, ShlObj, ShellAPI, Controls, IcsPlus, Printers,
AbBzip2, AbZBrows, AbUnZper, AbArcTyp, AbMeter, AbBrowse, AbBase, U_BaseConstants; AbBzip2, AbZBrows, AbUnZper, AbArcTyp, AbMeter, AbBrowse, AbBase;
type type
// Ïåðèîä ëèöåíçèè // Ïåðèîä ëèöåíçèè
TPeriod = (pWeek, pMonth, pQuarter); TPeriod = (pWeek, pMonth, pQuarter);
@ -732,10 +732,7 @@ begin
TempDir := s + OurTempDir; TempDir := s + OurTempDir;
result := TempDir; result := TempDir;
except except
//Tolik 31/01/2025 -- ShowMessage('Îøèáêà âðåìåííîé äèðåêòîðèè!');
//ShowMessage('Îøèáêà âðåìåííîé äèðåêòîðèè!');
ShowMessage(cTmpDirErr);
//
{$if Defined(ES_GRAPH_SC)} {$if Defined(ES_GRAPH_SC)}
Application.Terminate; Application.Terminate;
{$else} {$else}

View File

@ -2478,6 +2478,8 @@ object F_AddComponent: TF_AddComponent
object tsApplyInPM: TRzTabSheet object tsApplyInPM: TRzTabSheet
TabVisible = False TabVisible = False
Caption = 'tsApplyInPM' Caption = 'tsApplyInPM'
ExplicitWidth = 0
ExplicitHeight = 0
object GroupBox_ApplyForAllComponents: TRzGroupBox object GroupBox_ApplyForAllComponents: TRzGroupBox
Left = 0 Left = 0
Top = 0 Top = 0

View File

@ -488,8 +488,6 @@ const //*** Component Types
ctsnUZO = 'UZO_EL'; // Óñòðîéñòâî çàùèòíîãî îòêëþ÷åíèÿ ctsnUZO = 'UZO_EL'; // Óñòðîéñòâî çàùèòíîãî îòêëþ÷åíèÿ
ctsnElCounter = 'EL_COUNTER'; // Ñ÷åò÷èê ýëåêòðè÷åñêèé ctsnElCounter = 'EL_COUNTER'; // Ñ÷åò÷èê ýëåêòðè÷åñêèé
ctsnSwitchInput = 'EL_INPUTSHITCH'; // ââîäíîé àâòîìàò ctsnSwitchInput = 'EL_INPUTSHITCH'; // ââîäíîé àâòîìàò
ctsnWireTray = 'WIRETRAY'; // Tolik 10/04/2025 -- Лоток проволочный
// //
//*** ReportTypes //*** ReportTypes

View File

@ -1764,7 +1764,6 @@ const
cMakeEditComponentType_Msg7 = 'Описание'; cMakeEditComponentType_Msg7 = 'Описание';
cMakeEditComponentType_Msg8 = 'Перед тем как задать шаблон, необходимо определить системное имя.'; cMakeEditComponentType_Msg8 = 'Перед тем как задать шаблон, необходимо определить системное имя.';
cMakeEditComponentType_Msg9 = 'Высота размещения компонентов'; cMakeEditComponentType_Msg9 = 'Высота размещения компонентов';
cMakeEditComponentType_Msg10 = 'Лоток проволочный';
//------------------------------ //------------------------------
cMakeEditCrossConnection_Msg1_1 = 'По кабелям'; cMakeEditCrossConnection_Msg1_1 = 'По кабелям';
@ -3236,16 +3235,6 @@ const
cFtpmes4 = 'Не удалось удалить файл на сервере!'; cFtpmes4 = 'Не удалось удалить файл на сервере!';
cFtpmes5 = 'Не удалось получить список файлов с сервера!'; cFtpmes5 = 'Не удалось получить список файлов с сервера!';
cFtpmes6 = 'Не удалось определить лимит пользователя!'; cFtpmes6 = 'Не удалось определить лимит пользователя!';
cFtpmes7 = 'Закрыть текущий проект?';
cFtpmes8 = 'Файл с таким именем уже существует ' + #13#10 + 'на сервере. Перезаписать?';
cFtpmes9 = 'Резервное копирование';
cFtpmes10 = 'Введите новое имя файла:';
cFtpmes11 = 'Указано неверное имя файла!';
cFtpmes12 = 'Не удалось определить настройки пользователя!' + #13#10 +'Попробуйте обновить список файлов или обратитесь' + #13#10 +
'в службу технической поддержки.';
cTmpDirErr = 'Ошибка определения временной директории!'; //Tolik 31/01/2025 --
{$IFEND} {$IFEND}

View File

@ -3267,12 +3267,3 @@
cFtpmes4 = 'Failed to delete file on the server!'; cFtpmes4 = 'Failed to delete file on the server!';
cFtpmes5 = 'Failed to get list of files from the server!'; cFtpmes5 = 'Failed to get list of files from the server!';
cFtpmes6 = 'Unable to determine user limit!'; cFtpmes6 = 'Unable to determine user limit!';
cFtpmes7 = 'Do You want to close current project?';
cFtpmes8 = 'A file with this name already exists ' + #13#10 + ' on the server. Overwrite?';
cFtpmes9 = 'Backup';
cFtpmes10 = 'Enter new file name:';
cFtpmes11 = 'There is wrong file name!';
cFtpmes12 = 'Failed to get user settings!' + #13#10 +'Try to refresh files list or contact' + #13#10 +
'the technical support service.';
cTmpDirErr = 'Error defining temporary directory!'; //Tolik 31/01/2025 --

View File

@ -3223,12 +3223,3 @@
cFtpmes4 = 'Не вдалося видалити файл на сервері!'; cFtpmes4 = 'Не вдалося видалити файл на сервері!';
cFtpmes5 = 'Не вдалося отримати список файлів з сервера!'; cFtpmes5 = 'Не вдалося отримати список файлів з сервера!';
cFtpmes6 = 'Не вдалося визначити ліміт користувача!'; cFtpmes6 = 'Не вдалося визначити ліміт користувача!';
cFtpmes7 = 'Закрити поточний проект?';
cFtpmes8 = 'Файл з таким іменем вже існує ' + #13#10 + 'на сервері. Перезаписати?';
cFtpmes9 = 'Резервне копіювання';
cFtpmes10 = 'Введіть нове ім' + ''''+ 'я файла:';
cFtpmes11 = 'Вказано невірне ім' + ''''+ 'я файла!';
cFtpmes12 = 'Не вдалося визначити нагодження користувача!' + #13#10 +'Спробуйте поновити список файлів або зверніться' + #13#10 +
'в службу технічної підтримки.';
cTmpDirErr = 'Помилка визначення тимчасової папки!'; // Tolik 31/01/2025 --

View File

@ -52,6 +52,7 @@ object F_MAIN: TF_MAIN
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
Visible = False Visible = False
ExplicitTop = 650
object Label_Kolvo: TLabel object Label_Kolvo: TLabel
Left = 16 Left = 16
Top = 8 Top = 8
@ -110,6 +111,7 @@ object F_MAIN: TF_MAIN
OnDblClick = Panel_Main1Click OnDblClick = Panel_Main1Click
OnResize = Panel_MainResize OnResize = Panel_MainResize
OnUnDock = Panel_MainUnDock OnUnDock = Panel_MainUnDock
ExplicitHeight = 650
object Panel_Addition: TRzSizePanel object Panel_Addition: TRzSizePanel
Left = 0 Left = 0
Top = 434 Top = 434
@ -123,6 +125,7 @@ object F_MAIN: TF_MAIN
SizeBarWidth = 7 SizeBarWidth = 7
TabOrder = 0 TabOrder = 0
VisualStyle = vsClassic VisualStyle = vsClassic
ExplicitTop = 449
object ToolBar_CompData: TToolBar object ToolBar_CompData: TToolBar
Left = 0 Left = 0
Top = 47 Top = 47
@ -1321,16 +1324,18 @@ object F_MAIN: TF_MAIN
TabStyle = tsSquareCorners TabStyle = tsSquareCorners
OnChange = pcObjectsChange OnChange = pcObjectsChange
OnMouseMove = pcObjectsMouseMove OnMouseMove = pcObjectsMouseMove
ExplicitHeight = 449
FixedDimension = 22 FixedDimension = 22
object tsTemplates: TRzTabSheet object tsTemplates: TRzTabSheet
Hint = #1054#1073#1098#1077#1082#1090#1099 Hint = #1054#1073#1098#1077#1082#1090#1099
ImageIndex = 1 ImageIndex = 1
Caption = #1054#1073#1098#1077#1082#1090#1099 Caption = #1054#1073#1098#1077#1082#1090#1099
ExplicitHeight = 449
object lvTemplates: TRzListView object lvTemplates: TRzListView
Left = 160 Left = 160
Top = 30 Top = 30
Width = 172 Width = 172
Height = 404 Height = 419
Align = alClient Align = alClient
Columns = <> Columns = <>
ColumnClick = False ColumnClick = False
@ -1358,7 +1363,6 @@ object F_MAIN: TF_MAIN
OnResize = lvTemplatesResize OnResize = lvTemplatesResize
OnStartDrag = lvTemplatesStartDrag OnStartDrag = lvTemplatesStartDrag
OnSelectItem = lvTemplatesSelectItem OnSelectItem = lvTemplatesSelectItem
ExplicitHeight = 419
end end
object cbTemplates: TControlBar object cbTemplates: TControlBar
Left = 0 Left = 0
@ -1433,7 +1437,7 @@ object F_MAIN: TF_MAIN
object gbTemplateGroups: TRzGroupBar object gbTemplateGroups: TRzGroupBar
Left = 0 Left = 0
Top = 30 Top = 30
Height = 404 Height = 419
ExclusiveMode = True ExclusiveMode = True
GradientColorStart = clBtnFace GradientColorStart = clBtnFace
GradientColorStop = clBtnShadow GradientColorStop = clBtnShadow
@ -1454,6 +1458,7 @@ object F_MAIN: TF_MAIN
ImageIndex = 2 ImageIndex = 2
Caption = #1050#1086#1084#1087#1086#1085#1077#1085#1090#1099 Caption = #1050#1086#1084#1087#1086#1085#1077#1085#1090#1099
OnResize = tsComponentsResize OnResize = tsComponentsResize
ExplicitHeight = 449
object Panel_Tree: TPanel object Panel_Tree: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -1476,6 +1481,7 @@ object F_MAIN: TF_MAIN
OnEndDock = Panel_TreeEndDock OnEndDock = Panel_TreeEndDock
OnMouseMove = Panel_TreeMouseMove OnMouseMove = Panel_TreeMouseMove
OnStartDock = Panel_TreeStartDock OnStartDock = Panel_TreeStartDock
ExplicitHeight = 449
object splFindInTree: TSplitter object splFindInTree: TSplitter
Left = 0 Left = 0
Top = 201 Top = 201
@ -1619,6 +1625,7 @@ object F_MAIN: TF_MAIN
OnMouseMove = Tree_CatalogMouseMove OnMouseMove = Tree_CatalogMouseMove
OnMouseUp = Tree_CatalogMouseUp OnMouseUp = Tree_CatalogMouseUp
OnStartDrag = Tree_CatalogStartDrag OnStartDrag = Tree_CatalogStartDrag
ExplicitHeight = 226
end end
object Panel_New: TPanel object Panel_New: TPanel
Left = -169 Left = -169
@ -1710,10 +1717,6 @@ object F_MAIN: TF_MAIN
FixedDimension = 13 FixedDimension = 13
object tsFind: TRzTabSheet object tsFind: TRzTabSheet
Caption = #1055#1086#1080#1089#1082 Caption = #1055#1086#1080#1089#1082
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object Panel2: TPanel object Panel2: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -2174,6 +2177,7 @@ object F_MAIN: TF_MAIN
BorderInner = fsFlat BorderInner = fsFlat
BorderOuter = fsNone BorderOuter = fsNone
TabOrder = 4 TabOrder = 4
ExplicitTop = 430
object lbFilterIsOn: TRzLabel object lbFilterIsOn: TRzLabel
Left = 8 Left = 8
Top = 2 Top = 2
@ -2216,6 +2220,7 @@ object F_MAIN: TF_MAIN
Caption = #1043#1088#1091#1087#1087#1099 Caption = #1043#1088#1091#1087#1087#1099
ParentShowHint = False ParentShowHint = False
ShowHint = False ShowHint = False
ExplicitHeight = 449
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 0 Left = 0
Top = 105 Top = 105
@ -8298,7 +8303,7 @@ object F_MAIN: TF_MAIN
Left = 200 Left = 200
Top = 152 Top = 152
Bitmap = { Bitmap = {
494C010104005001240310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010104005001200310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000

View File

@ -11190,7 +11190,7 @@ begin
Act_ReplaceCableCanals.Visible := true; Act_ReplaceCableCanals.Visible := true;
Act_SetCableCanalConnectors.Visible := true; Act_SetCableCanalConnectors.Visible := true;
Act_SetCableCanalConnectorsToSelected.Visible := true; Act_SetCableCanalConnectorsToSelected.Visible := true;
Act_SetTubesElements.Visible := True; //Act_SetTubesElements.Visible := True;
end; end;
end; end;
@ -26132,7 +26132,7 @@ var i: integer;
for j := 0 to TubeCompon.CableCanalConnectors.Count - 1 do for j := 0 to TubeCompon.CableCanalConnectors.Count - 1 do
begin begin
PtrTubeConnector := PCableCanalConnector(TubeCompon.CableCanalConnectors[j]); PtrTubeConnector := PCableCanalConnector(TubeCompon.CableCanalConnectors[j]);
TubeConn := TSCSComponent(TubeCompon.CableCanalConnectors[j]); //TubeConn := TSCSComponent(TubeCompon.CableCanalConnectors[j]);
//TubeConn := //TubeConn :=
//PtrTubeConnector.GuidNBConnector //PtrTubeConnector.GuidNBConnector
@ -34056,10 +34056,7 @@ end;
i: Integer; i: Integer;
begin begin
if Assigned(ACableCanalCompon) and if Assigned(ACableCanalCompon) and
//Tolik 07/03/2025 -- (ACableCanalCompon.ComponentType.SysName = ctsnCableChannel) and (ASide > 0) then
//(ACableCanalCompon.ComponentType.SysName = ctsnCableChannel) and (ASide > 0) then
((ACableCanalCompon.ComponentType.SysName = ctsnCableChannel) or
(ACableCanalCompon.ComponentType.SysName = ctsnTube)) and (ASide > 0) then
begin begin
CanalObject := ACableCanalCompon.GetFirstParentCatalog; CanalObject := ACableCanalCompon.GetFirstParentCatalog;
if Assigned(CanalObject) then if Assigned(CanalObject) then
@ -34130,10 +34127,7 @@ end;
CableCanalObject := GSCSBase.CurrProject.GetCatalogFromReferencesBySCSID(ConnectorLinesID[i]); CableCanalObject := GSCSBase.CurrProject.GetCatalogFromReferencesBySCSID(ConnectorLinesID[i]);
if Assigned(CableCanalObject) then if Assigned(CableCanalObject) then
if assigned(CableCanalObject.ComponentReferences) then if assigned(CableCanalObject.ComponentReferences) then
//Tolik 07/03/2025 if CableCanalObject.ComponentReferences.GetComponentByType(ctsnCableChannel) <> nil then
// if CableCanalObject.ComponentReferences.GetComponentByType(ctsnCableChannel) <> nil then
if CableCanalObject.ComponentReferences.GetComponentByType(ACableCanalCompon.Componenttype.SysName) <> nil then
//
ConnectedLines.Add(CableCanalObject); ConnectedLines.Add(CableCanalObject);
end; end;
GetMem(ptrConnectorWithLines, SizeOf(TConnectorWithLines)); GetMem(ptrConnectorWithLines, SizeOf(TConnectorWithLines));
@ -35630,18 +35624,7 @@ end;
//SavedNBComponent: TSCSComponent; //SavedNBComponent: TSCSComponent;
// //
SavedGConnecntOnlyOneLineCompon: boolean; SavedGConnecntOnlyOneLineCompon: boolean;
ComponSName, ElementSName: string;
begin begin
if aInstallTubesElements then
begin
ComponSName := ctsnTube;
ElementSName := ctsnTubeElement;
end
else
begin
ComponSName := ctsnCableChannel;
ElementSName := ctsnCableChannelElement;
end;
try try
SavedGConnecntOnlyOneLineCompon := GConnecntOnlyOneLineCompon; SavedGConnecntOnlyOneLineCompon := GConnecntOnlyOneLineCompon;
GConnecntOnlyOneLineCompon := True; GConnecntOnlyOneLineCompon := True;
@ -35673,10 +35656,7 @@ end;
begin begin
ConnectorComponent := AConnectorWithLines.ConnectorObject.SCSComponents[i]; ConnectorComponent := AConnectorWithLines.ConnectorObject.SCSComponents[i];
if ConnectorComponent.ComeFrom = cftAuto then if ConnectorComponent.ComeFrom = cftAuto then
//Tolik 07/03/2025 -- if ConnectorComponent.ComponentType.SysName = ctsnCableChannelElement then
//if ConnectorComponent.ComponentType.SysName = ctsnCableChannelElement then
if ConnectorComponent.ComponentType.SysName = ElementSName then
//
begin begin
CCESideCount := GetCCESideCount(ConnectorComponent); CCESideCount := GetCCESideCount(ConnectorComponent);
JoinedCountToConnector := GetJoinedCountToComponWithChilds(ConnectorComponent); JoinedCountToConnector := GetJoinedCountToComponWithChilds(ConnectorComponent);
@ -35685,10 +35665,7 @@ end;
(AConnectorWithLines.ConnectedLines.Count <> CCESideCount) then (AConnectorWithLines.ConnectedLines.Count <> CCESideCount) then
begin begin
// Åñëè ýòî íå äîïîëíèòåëüíûé ýêê // Åñëè ýòî íå äîïîëíèòåëüíûé ýêê
//Tolik 07/03/2025 -- JoinedComponent := GetJoinedComponWithType(ConnectorComponent, ctsnCableChannelElement);
//JoinedComponent := GetJoinedComponWithType(ConnectorComponent, ctsnCableChannelElement);
JoinedComponent := GetJoinedComponWithType(ConnectorComponent, ElementSName);
//
if (JoinedComponent = nil) or (CCESideCount > GetCCESideCount(JoinedComponent)) then if (JoinedComponent = nil) or (CCESideCount > GetCCESideCount(JoinedComponent)) then
CCEToDel.Add(ConnectorComponent); //DelCompon(ConnectorComponent, nil, true, true, true, false); CCEToDel.Add(ConnectorComponent); //DelCompon(ConnectorComponent, nil, true, true, true, false);
end; end;
@ -35704,10 +35681,7 @@ end;
while i <= ConnectorComponent.JoinedComponents.Count - 1 do while i <= ConnectorComponent.JoinedComponents.Count - 1 do
begin begin
JoinedComponent := ConnectorComponent.JoinedComponents[i]; JoinedComponent := ConnectorComponent.JoinedComponents[i];
//Tolik 07/03/2025 -- if JoinedComponent.ComponentType.SysName = ctsnCableChannelElement then
//if JoinedComponent.ComponentType.SysName = ctsnCableChannelElement then
if JoinedComponent.ComponentType.SysName = ElementSName then
//
begin begin
CCEToDel.Remove(JoinedComponent); CCEToDel.Remove(JoinedComponent);
DelCompon(JoinedComponent, nil, true, true, true, false) DelCompon(JoinedComponent, nil, true, true, true, false)
@ -35743,10 +35717,7 @@ end;
if assigned(LineObject.ComponentReferences) then if assigned(LineObject.ComponentReferences) then
for j := 0 to LineObject.ComponentReferences.Count - 1 do for j := 0 to LineObject.ComponentReferences.Count - 1 do
if Assigned(LineObject.ComponentReferences[j]) then if Assigned(LineObject.ComponentReferences[j]) then
//Tolik 07/03/2025 -- ComponSName if LineObject.ComponentReferences[j].ComponentType.SysName = ctsnCableChannel then
//if LineObject.ComponentReferences[j].ComponentType.SysName = ctsnCableChannel then
if LineObject.ComponentReferences[j].ComponentType.SysName = ComponSName then
//
if LineObject.ComponentReferences[j].GetInterfcesCountByTypeIsBusySide(itFunctional, biTrue, CurrLineSide) = 0 then if LineObject.ComponentReferences[j].GetInterfcesCountByTypeIsBusySide(itFunctional, biTrue, CurrLineSide) = 0 then
begin begin
CanalComponent := LineObject.ComponentReferences[j]; CanalComponent := LineObject.ComponentReferences[j];

View File

@ -716,7 +716,6 @@ begin
AddSysNameTYoTable(ctsnTestingAccessory, cMakeEditComponentType_Msg5_38); AddSysNameTYoTable(ctsnTestingAccessory, cMakeEditComponentType_Msg5_38);
AddSysNameTYoTable(ctsnTube, cMakeEditComponentType_Msg5_39); AddSysNameTYoTable(ctsnTube, cMakeEditComponentType_Msg5_39);
AddSysNameTYoTable(ctsnTubeElement,cMakeEditComponentType_Msg5_39_1);// Tolik 13/10/2018 -- AddSysNameTYoTable(ctsnTubeElement,cMakeEditComponentType_Msg5_39_1);// Tolik 13/10/2018 --
AddSysNameTYoTable(ctsnWireTray,cMakeEditComponentType_Msg10); // Tolik 10/04/2025 -- Ëîòîê Ïðîâîëî÷íûé
AddSysNameTYoTable(ctsnInstallBox, cMakeEditComponentType_Msg5_40); AddSysNameTYoTable(ctsnInstallBox, cMakeEditComponentType_Msg5_40);
AddSysNameTYoTable(ctsnCupboard, cMakeEditComponentType_Msg5_41); AddSysNameTYoTable(ctsnCupboard, cMakeEditComponentType_Msg5_41);
AddSysNameTYoTable(ctsnJackPlug, cMakeEditComponentType_Msg5_42); AddSysNameTYoTable(ctsnJackPlug, cMakeEditComponentType_Msg5_42);

View File

@ -1708,7 +1708,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 8 Left = 8
Top = 136 Top = 136
Bitmap = { Bitmap = {
494C01010B002800B80010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C01010B002800700010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000003000000001002000000000000030 0000000000003600000028000000400000003000000001002000000000000030
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000EF6B 000000000000000000000000000000000000000000000000000000000000EF6B
@ -2140,7 +2140,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 40 Left = 40
Top = 136 Top = 136
Bitmap = { Bitmap = {
494C010105002800AC0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010105002800640010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000004D4F 0000000000000000000000000000000000000000000000000000000000004D4F
4F004D4F4F0000000000000000000000000000000000000000004D4F4F004D4F 4F004D4F4F0000000000000000000000000000000000000000004D4F4F004D4F
@ -2415,7 +2415,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 72 Left = 72
Top = 136 Top = 136
Bitmap = { Bitmap = {
494C010105002800AC0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010105002800640010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000004D4F 0000000000000000000000000000000000000000000000000000000000004D4F
4F004D4F4F0000000000000000000000000000000000000000004D4F4F004D4F 4F004D4F4F0000000000000000000000000000000000000000004D4F4F004D4F
@ -2728,7 +2728,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 88 Left = 88
Top = 200 Top = 200
Bitmap = { Bitmap = {
494C010105002800AC0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010105002800640010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@ -3521,7 +3521,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 576 Left = 576
Top = 344 Top = 344
Bitmap = { Bitmap = {
494C010105002800A00010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010105002800580010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000949494005A5A5A00B5B5B500CECECE000000 0000000000000000000000000000949494005A5A5A00B5B5B500CECECE000000
@ -3796,7 +3796,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 544 Left = 544
Top = 344 Top = 344
Bitmap = { Bitmap = {
494C010105002800A00010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010105002800580010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000018F70000008400106BA5001094D6000000 00000000000000000000000000000018F70000008400106BA5001094D6000000
@ -4071,7 +4071,7 @@ object F_MakeEditCrossConnection: TF_MakeEditCrossConnection
Left = 512 Left = 512
Top = 344 Top = 344
Bitmap = { Bitmap = {
494C01010B002800A00010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C01010B002800580010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000003000000001002000000000000030 0000000000003600000028000000400000003000000001002000000000000030
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000A5BDAD0094B5A50094ADA50094ADA500000000000000 00000000000000000000A5BDAD0094B5A50094ADA50094ADA500000000000000

View File

@ -159,7 +159,6 @@ object F_MakeNorm: TF_MakeNorm
Top = 16 Top = 16
Width = 81 Width = 81
Height = 21 Height = 21
AutoComplete = False
Ctl3D = False Ctl3D = False
FrameHotTrack = True FrameHotTrack = True
FrameVisible = True FrameVisible = True

View File

@ -694,10 +694,8 @@ end;
procedure TF_MakeNorm.CorrectCypher(var AMainCyper, ARestCypher: String); procedure TF_MakeNorm.CorrectCypher(var AMainCyper, ARestCypher: String);
var var
//Tolik 20/02/2025 WholeCypher: String;
//WholeCypher: String;
WholeCypher: AnsiString;
//
KolvoZnak: array [0..5] of integer; KolvoZnak: array [0..5] of integer;
TempShifr: string; TempShifr: string;
@ -1052,110 +1050,6 @@ begin
FNormCypherTitles.Add('ÒÐ'); FNormCypherTitles.Add('ÒÐ');
FNormCypherTitles.Add('ØÄ'); FNormCypherTitles.Add('ØÄ');
FNormCypherTitles.Add('Ó'); FNormCypherTitles.Add('Ó');
//Tolik 19/02/2025 --
FNormCypherTitles.Add('ÊÐ');
FNormCypherTitles.Add('ÊÌ');
FNormCypherTitles.Add('ÊÁ');
//
FNormCypherTitles.Add('ÊÂ');
FNormCypherTitles.Add('ÕÕ');
FNormCypherTitles.Add('ÂÌ');
FNormCypherTitles.Add('ÏÆ');
FNormCypherTitles.Add('ÒÅ');
FNormCypherTitles.Add('ËÓ');
FNormCypherTitles.Add('ÑË');
FNormCypherTitles.Add('ÆÊ');
FNormCypherTitles.Add('ÂÅ');
FNormCypherTitles.Add('ÒÃ');
FNormCypherTitles.Add('ÆÑ');
FNormCypherTitles.Add('ÒÏ');
FNormCypherTitles.Add('ÑÃ');
FNormCypherTitles.Add('ÅÂ');
FNormCypherTitles.Add('ÃÊ');
FNormCypherTitles.Add('ÄÅ');
FNormCypherTitles.Add('ÁÐ');
FNormCypherTitles.Add('ÐÌ');
FNormCypherTitles.Add('ÐÓ');
FNormCypherTitles.Add('ÑÐ');
FNormCypherTitles.Add('ÄÏ');
FNormCypherTitles.Add('ÃÁ');
FNormCypherTitles.Add('ÊÏ');
FNormCypherTitles.Add('ÊÃ');
FNormCypherTitles.Add('ÅÑ');
FNormCypherTitles.Add('ÅÌ');
FNormCypherTitles.Add('ÌÃ');
FNormCypherTitles.Add('ÑÀ');
FNormCypherTitles.Add('ÌÐ');
FNormCypherTitles.Add('ÕÁ');
FNormCypherTitles.Add('ÏÒ');
FNormCypherTitles.Add('ÖÃ');
FNormCypherTitles.Add('ÏÂ');
FNormCypherTitles.Add('ÕÔ');
FNormCypherTitles.Add('ÊÄ');
FNormCypherTitles.Add('ÊÅ');
FNormCypherTitles.Add('ÐÇ');
FNormCypherTitles.Add('ÌÑ');
FNormCypherTitles.Add('ÏÑ');
FNormCypherTitles.Add('ÄÐ');
FNormCypherTitles.Add('ÑÏ');
FNormCypherTitles.Add('ÂÂ');
FNormCypherTitles.Add('ÐÐ');
FNormCypherTitles.Add('ØÐ');
FNormCypherTitles.Add('ÎÍ');
FNormCypherTitles.Add('ÕÑ');
FNormCypherTitles.Add('ÔÔ');
FNormCypherTitles.Add('ÔÐ');
FNormCypherTitles.Add('ÀÏ');
FNormCypherTitles.Add('ÐÑ');
FNormCypherTitles.Add('ÁÒ');
FNormCypherTitles.Add('ÄÍ');
FNormCypherTitles.Add('ÑÄ');
FNormCypherTitles.Add('ÁÏ');
FNormCypherTitles.Add('×Â');
FNormCypherTitles.Add('ÐÀ');
FNormCypherTitles.Add('ÍÏ');
FNormCypherTitles.Add('ÓÂ');
FNormCypherTitles.Add('ÒÂ');
FNormCypherTitles.Add('ÑÓ');
FNormCypherTitles.Add('ÑÒ');
FNormCypherTitles.Add('ÎÃ');
FNormCypherTitles.Add('ÁÌ');
FNormCypherTitles.Add('ÀÌ');
FNormCypherTitles.Add('ÓÖ');
FNormCypherTitles.Add('ÓÁ');
FNormCypherTitles.Add('ÇÁ');
FNormCypherTitles.Add('ߨ');
FNormCypherTitles.Add('ÊÊ');
FNormCypherTitles.Add('ÌÒ');
FNormCypherTitles.Add('ÂÊ');
FNormCypherTitles.Add('ÔÍ');
FNormCypherTitles.Add('ÀÑ');
FNormCypherTitles.Add('ÑÂ');
FNormCypherTitles.Add('ÌÁ');
FNormCypherTitles.Add('ÌÓ');
FNormCypherTitles.Add('ËÄ');
FNormCypherTitles.Add('ÂÐ');
FNormCypherTitles.Add('ÓØ');
FNormCypherTitles.Add('ÁÄ');
FNormCypherTitles.Add('ÌÏ');
FNormCypherTitles.Add('ÃÌ');
FNormCypherTitles.Add('ËÁ');
FNormCypherTitles.Add('ÊË');
FNormCypherTitles.Add('ÄÁ');
FNormCypherTitles.Add('ÄÓ');
FNormCypherTitles.Add('ÏÐË');
FNormCypherTitles.Add('ÐÇË');
FNormCypherTitles.Add('ÒÌÌ');
FNormCypherTitles.Add('ÏÐÔ');
FNormCypherTitles.Add('ÂÁÐ');
FNormCypherTitles.Add('ÂÊÒ');
FNormCypherTitles.Add('ØÐÁ');
FNormCypherTitles.Add('ËÁÐ');
FNormCypherTitles.Add('ÖÃÏ');
//
FResMatCypherTitles := TStringList.Create; FResMatCypherTitles := TStringList.Create;
FResMatCypherTitles.Add('Ñ1'); FResMatCypherTitles.Add('Ñ1');

View File

@ -1,5 +1,6 @@
unit U_PECommon; unit U_PECommon;
interface interface
uses uses
@ -217,10 +218,8 @@ begin
ListOfAllTraces := GetAllTraceInCADByMarked_New1(CurrentServer, CurrentWS) ListOfAllTraces := GetAllTraceInCADByMarked_New1(CurrentServer, CurrentWS)
else else
ListOfAllTraces := GetAllTraceInCADByMarked(CurrentServer, CurrentWS); ListOfAllTraces := GetAllTraceInCADByMarked(CurrentServer, CurrentWS);
//Tolik 21/01/2025 -- òóò âïîëíå ìîæåò âåðíóòüñÿ íóëåâîé ðåçóëüòàò (òèïà, nil)
//if ListOfAllTraces.Count > 0 then if ListOfAllTraces.Count > 0 then
if ((ListOfAllTraces <> nil) and (ListOfAllTraces.Count > 0)) then
//
begin begin
//if GCadForm.FTracingListIndex > ListOfAllTraces.Count - 1 then //if GCadForm.FTracingListIndex > ListOfAllTraces.Count - 1 then
GCadForm.FTracingListIndex := 0; GCadForm.FTracingListIndex := 0;
@ -290,10 +289,8 @@ begin
end; end;
//ListOfAllTraces := GetAllTraceInCADByMarked(ConnTo, ConnFrom{ConnFrom, ConnTo}); //ListOfAllTraces := GetAllTraceInCADByMarked(ConnTo, ConnFrom{ConnFrom, ConnTo});
ListOfAllTraces := GetAllTraceInCADByMarked(ConnFrom, ConnTo); ListOfAllTraces := GetAllTraceInCADByMarked(ConnFrom, ConnTo);
// Tolik 21/01/2025 --
//if ListOfAllTraces.Count > 0 then if ListOfAllTraces.Count > 0 then
if ((ListOfAllTraces <> nil) and (ListOfAllTraces.Count > 0)) then
//
begin begin
//if GCadForm.FTracingListIndex > ListOfAllTraces.Count - 1 then //if GCadForm.FTracingListIndex > ListOfAllTraces.Count - 1 then
// GCadForm.FTracingListIndex := 0; // GCadForm.FTracingListIndex := 0;
@ -678,9 +675,6 @@ begin
ListFolder := nil; ListFolder := nil;
ListObject := nil; ListObject := nil;
isLastShield := False; isLastShield := False;
ListAllComponent := nil; // Tolik 21/01/2025 --
LastPoint := nil; // Tolik -- 16/09/2021 -- LastPoint := nil; // Tolik -- 16/09/2021 --
@ -1597,8 +1591,6 @@ begin
if EndPointComponList <> nil then if EndPointComponList <> nil then
FreeAndNil(EndPointComponList); FreeAndNil(EndPointComponList);
// //
if ListAllComponent <> nil then
FreeAndNil(ListAllComponent); //Tolik 21/01/2025 --
end; end;
//GCanRefreshCad := True; //GCanRefreshCad := True;
GCadForm.PCad.Refresh; GCadForm.PCad.Refresh;
@ -1607,7 +1599,7 @@ end;
procedure PE_AutoTrace(ATypeAutoTrace: integer; AEndList, AWorkList: TList); procedure PE_AutoTrace(ATypeAutoTrace: integer; AEndList, AWorkList: TList);
var var
ListShield: tList; ListShield: tList;
//vLists: TList; vLists: TList;
begin begin
if F_NormBase.GSCSBase.SCSComponent.ComponentType.SysName = ctsnCable then if F_NormBase.GSCSBase.SCSComponent.ComponentType.SysName = ctsnCable then
begin begin
@ -1627,7 +1619,6 @@ begin
tatIndivid: LIstShield := AutoTraseToShield(AWorkList, AEndList, True); tatIndivid: LIstShield := AutoTraseToShield(AWorkList, AEndList, True);
end; end;
FreeAndNil(ListShield); //Tolik 20/1/2025 --
end; end;
// EndAutoTrace; // EndAutoTrace;
end; end;
@ -2784,17 +2775,9 @@ end;
inc(k); inc(k);
SetLength(TraceList, k); SetLength(TraceList, k);
TraceList[k - 1] := TracesLength; TraceList[k - 1] := TracesLength;
//Tolik 21/01/2025 -+
//FreeAndNil(CurrPathList);
//FreeAndNil(currPath);
//
end;
//Tolik 21/01/2025
for j := 0 to CurrPathList.Count - 1 do
TList(CurrPathList[j]).Free;
FreeAndNil(CurrPathList); FreeAndNil(CurrPathList);
currPath := nil; FreeAndNil(currPath);
// end;
end end
end; end;
end; end;
@ -2923,15 +2906,15 @@ end;
end; end;
end; end;
Begin Begin
//ComponList := TList.Create; // Tolik 21/01/2025 --ýòè 2 ñïèñêà âðîäå êàê íå þçàþòñÿ çäåñü ComponList := TList.Create;
//ComponList1 := TList.Create; ComponList1 := TList.Create;
currPath:= nil; //Tolik 21/01/2025 --
IdCable := F_NormBase.GSCSBase.SCSComponent.ID; IdCable := F_NormBase.GSCSBase.SCSComponent.ID;
if AFigList.Count > 0 then if AFigList.Count > 0 then
begin begin
SortFigList(AFigList, LengthsList); SortFigList(AFigList, LengthsList);
end; end;
//PassList := TList.Create; // Tolik 21/01/2025 -- íå þçàåòñÿ çäåñü PassList := TList.Create;
SetLength(LenList, 0); SetLength(LenList, 0);
//connect First Figure To Server //connect First Figure To Server
Figure := TFigure(AFigList[0]); Figure := TFigure(AFigList[0]);
@ -2979,10 +2962,7 @@ end;
for i := 0 to AFigList.Count - 1 do for i := 0 to AFigList.Count - 1 do
begin begin
currPathList := GetAllTraceInCADByMarked(Figure, TFigure(aFigList[i])); currPathList := GetAllTraceInCADByMarked(Figure, TFigure(aFigList[i]));
//Tolik 21/01/2025 -- if currPathList.Count > 0 then
//if currPathList.Count > 0 then
if ((currPathList <> nil) and (currPathList.Count > 0)) then
//
begin begin
SortPathListByLength(CurrPathList); SortPathListByLength(CurrPathList);
currPathsToFigure.Add(currPathList[0]); currPathsToFigure.Add(currPathList[0]);
@ -3029,7 +3009,6 @@ end;
currPath:= nil; currPath:= nil;
currPathsToFigure.Clear; currPathsToFigure.Clear;
end; end;
FreeAndNil(currPathsToFigure); // Tolik 21/01/2025 --
if not F_PEAutoTraceDialog.CheckPassedTraces.Checked then if not F_PEAutoTraceDialog.CheckPassedTraces.Checked then
// Tolik 20/02/2021 -- // Tolik 20/02/2021 --
{ {
@ -3054,24 +3033,15 @@ end;
currPath := GetPathByMode(CurrPathList); //currPathList[0]; currPath := GetPathByMode(CurrPathList); //currPathList[0];
// âîçâðàò ê íà÷àëüíîé òî÷êå ïîäêëþ÷åíèÿ // âîçâðàò ê íà÷àëüíîé òî÷êå ïîäêëþ÷åíèÿ
//Tolik 21/05/2025 --
{
if F_PEAutoTraceDialog.TypeConnection.ItemIndex = 1 then if F_PEAutoTraceDialog.TypeConnection.ItemIndex = 1 then
CanConnect := ConnectFigures(TConnectorObject(Figure), CurrentServer, currPath, IDCable); CanConnect := ConnectFigures(TConnectorObject(Figure), CurrentServer, currPath, IDCable);
}
if F_NormBase.GSCSBase.SCSComponent.IDNetType <> 3 then //çäåñü äëÿ ýëåêòðèêè îáðàòíûé êàáåëü íå ëîæèì (íî ëàçåéêó äëÿ òðàññèðîâêè îñòàâëÿåì)
begin
if F_PEAutoTraceDialog.TypeConnection.ItemIndex = 1 then
CanConnect := ConnectFigures(TConnectorObject(Figure), CurrentServer, currPath, IDCable);
end;
//
if F_PEAutoTraceDialog.CheckPassedTraces.Checked then if F_PEAutoTraceDialog.CheckPassedTraces.Checked then
CheckPassedPath(currPath); CheckPassedPath(currPath);
if currPathList <> nil then if currPathList <> nil then
FreeAndNil(currPathList); FreeAndNil(currPathList);
if currPath <> nil then if currPath <> nil then
FreeAndNil(currPath); FreeAndNil(currPath);
SetLength(LenList, 0); // Tolik 21/01/2025 --
End; End;
{ procedure GetServerCompons(aNode : TFlyNode); { procedure GetServerCompons(aNode : TFlyNode);
@ -3386,7 +3356,6 @@ begin
// èáî íåõ // èáî íåõ
{ if WSSideCompons.IndexOf(CurrentServer.ID) = -1 then { if WSSideCompons.IndexOf(CurrentServer.ID) = -1 then
begin} begin}
CurrFiguresList := TraceFiguresToServer(CurrentServer); CurrFiguresList := TraceFiguresToServer(CurrentServer);
if ((CurrFiguresList <> nil) and (CurrFiguresList.Count > 0)) then if ((CurrFiguresList <> nil) and (CurrFiguresList.Count > 0)) then
@ -3429,11 +3398,6 @@ begin
if ConnectedComponList <> nil then if ConnectedComponList <> nil then
FreeAndNil(ConnectedComponList); FreeAndNil(ConnectedComponList);
// GDragOnCAD := false; // GDragOnCAD := false;
//Tolik 20/01/2025 --
FreeAndNil(CurrFiguresList);
FreeAndNil(currPathList);
FreeAndNil(CurrPath);
//
end; end;
end; end;
// //
@ -3880,7 +3844,7 @@ begin
try try
Result := False; Result := False;
AllTrace := Nil; AllTrace := Nil;
//CurrTraceList := Nil; //20/01/2025 CurrTraceList := Nil;
CurrTraceList := TList.Create; CurrTraceList := TList.Create;
//if ACurrPoint.ConnectorType = ct_Clear then //if ACurrPoint.ConnectorType = ct_Clear then
// begin // begin
@ -7884,9 +7848,6 @@ var
begin begin
try try
if WayList <> nil then
FreeAndNil(WayList);//Tolik 20/01/2025 --
DistanceList := TList.Create; DistanceList := TList.Create;
For i := 0 to AStartIndex - 1 do For i := 0 to AStartIndex - 1 do
DistanceList.Add(Nil); DistanceList.Add(Nil);
@ -7899,19 +7860,11 @@ var
OperFigure := TConnectorObject(AWorkFigures[i]); OperFigure := TConnectorObject(AWorkFigures[i]);
for Count := 0 to OperFigure.JoinedConnectorsList.Count - 1 do for Count := 0 to OperFigure.JoinedConnectorsList.Count - 1 do
begin begin
//Tolik 20/01/2025 --
{
WayList := Nil; WayList := Nil;
}
WayList := GetAllTracePEInCADforLamp(AEndObjects, Operfigure, true); WayList := GetAllTracePEInCADforLamp(AEndObjects, Operfigure, true);
if WayList <> nil then
begin
//
operdist := TotalLength(WayList); operdist := TotalLength(WayList);
if ((operdist <> -1) and(operdist < distance)) or (distance = -1) then if ((operdist <> -1) and(operdist < distance)) or (distance = -1) then
distance := operdist; distance := operdist;
FreeAndNil(WayList); // Tolik 20/01/2025 --
end;
end; end;
if i = 0 + AStartIndex then if i = 0 + AStartIndex then
begin begin

Binary file not shown.