mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-11 18:25:40 +02:00
Merge branch 'master' of ssh://173.249.15.38:/opt/git/expertcad
This commit is contained in:
commit
30428ce2d5
@ -203,7 +203,10 @@ uses
|
||||
U_ExpXlsX in 'SCSNormBase\U_ExpXlsX.pas' {/},
|
||||
U_PortsReIndex in 'SCSNormBase\U_PortsReIndex.pas' {F_PortsReIndex},
|
||||
U_ELCommon in 'Main\U_ELCommon.pas' {/U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency},
|
||||
U_ShieldConfig in 'Main\U_ShieldConfig.pas'; // Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;
|
||||
U_ShieldConfig in 'Main\U_ShieldConfig.pas' {/ Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;},
|
||||
U_Reserv in 'Main\U_Reserv.pas' {F_Reserv};
|
||||
|
||||
// Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;
|
||||
//U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency};
|
||||
|
||||
//
|
||||
@ -1195,7 +1198,9 @@ To enable the UAC again, simply change back the value of EnableLUA to 1.
|
||||
|
||||
Application.CreateForm(TFSCS_Main, FSCS_Main);
|
||||
Application.CreateForm(TF_MasterNewListLite, F_MasterNewListLite);
|
||||
Application.CreateForm(TF_ShieldConfig, F_ShieldConfig); // Tolik 16/03/2023
|
||||
Application.CreateForm(TF_ShieldConfig, F_ShieldConfig);
|
||||
Application.CreateForm(TF_Reserv, F_Reserv);
|
||||
// Tolik 16/03/2023
|
||||
//Application.CreateForm(TF_PortsReIndex, F_PortsReIndex);
|
||||
FSCS_Main.Left := Screen.WorkAreaRect.Left;
|
||||
FSCS_Main.Top := Screen.WorkAreaRect.Top;
|
||||
|
||||
@ -705,6 +705,9 @@
|
||||
<DCCReference Include="Main\U_ShieldConfig.pas">
|
||||
<Form>/ Tolik 16/03/2023 формат щитка для монтажной схемы;</Form>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Main\U_Reserv.pas">
|
||||
<Form>F_Reserv</Form>
|
||||
</DCCReference>
|
||||
<BuildConfiguration Include="Release Telecom UKR Trial">
|
||||
<Key>Cfg_10</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
|
||||
@ -637,6 +637,7 @@ var
|
||||
Req: string;
|
||||
TimeStr: string;
|
||||
begin
|
||||
Randomize;
|
||||
Randomize;
|
||||
TimeStr := DateTimeToStr(Now);
|
||||
while Pos(':', TimeStr) > 0 do
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1182,6 +1182,8 @@ type
|
||||
aInstRaspredBox: TAction;
|
||||
mnuShieldAssemblySH: TMenuItem;
|
||||
aShieldAssemblyScheme: TAction;
|
||||
TimerTracingInterval: TTimer;
|
||||
mnuReserv: TMenuItem;
|
||||
|
||||
// ACTIONs
|
||||
// ñîçäàòü íîâûé ïðîåêò
|
||||
@ -1994,6 +1996,8 @@ type
|
||||
ARect: TRect; State: TOwnerDrawState);
|
||||
procedure aInstRaspredBoxExecute(Sender: TObject);
|
||||
procedure aShieldAssemblySchemeExecute(Sender: TObject);
|
||||
procedure TimerTracingIntervalTimer(Sender: TObject);
|
||||
procedure mnuReservClick(Sender: TObject);
|
||||
|
||||
{ procedure SelectAllLineObjsHint(var HintStr: String;
|
||||
var CanShow: Boolean);
|
||||
@ -2184,7 +2188,8 @@ uses
|
||||
, U_SCSClasses
|
||||
// Tolik 28/03/2017 --
|
||||
, U_Master_compl
|
||||
, U_PortsReIndex, U_PEGetBox;
|
||||
, U_PortsReIndex, U_PEGetBox,
|
||||
U_Reserv; //Tolik 11/12/2024 --óïðàâëåíèå ðåçåðâíûìè êîïèÿìè
|
||||
|
||||
{$R *.dfm}
|
||||
{$R Cursors.res}
|
||||
@ -2713,7 +2718,8 @@ begin
|
||||
aCreateNormsOnCad.Visible := False;
|
||||
aManual_Interfaces.Visible := False;
|
||||
end;
|
||||
|
||||
GFtpConnectStr := ReadSetting(fnSCSIniFile, dtString, scReservFtp, idtConnectString, '');
|
||||
mnuReserv.Enabled := GFtpConnectStr <> '';
|
||||
|
||||
//#From Oleg#
|
||||
//XPMenu.Active := false;
|
||||
@ -14291,6 +14297,10 @@ var
|
||||
is_flash: boolean;
|
||||
s: string;
|
||||
begin
|
||||
//Tolik 03/01/2025 --
|
||||
GFtpConnectStr := ReadSetting(fnSCSIniFile, dtString, scReservFtp, idtConnectString, '');
|
||||
mnuReserv.Enabled := GFtpConnectStr <> '';
|
||||
//
|
||||
// Tolik 06/11/2019 --
|
||||
WindowState := wsMaximized;
|
||||
Width := Screen.Width;
|
||||
@ -14484,6 +14494,13 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TFSCS_Main.TimerTracingIntervalTimer(Sender: TObject);
|
||||
begin
|
||||
GDropTracing := true;
|
||||
FSCS_Main.TimerTracingInterval.Enabled := false;
|
||||
//showmessage('TracingTimer');
|
||||
end;
|
||||
|
||||
procedure TFSCS_Main.FOnAppActivate(Sender: TObject);
|
||||
begin
|
||||
if not GAppMinim then
|
||||
@ -19939,6 +19956,11 @@ begin
|
||||
ShowConnDisconnComponsForList(GCadForm.FCADListID, cdConnlineCompons);
|
||||
end;
|
||||
|
||||
procedure TFSCS_Main.mnuReservClick(Sender: TObject);
|
||||
begin
|
||||
F_Reserv.ShowModal;
|
||||
end;
|
||||
|
||||
procedure TFSCS_Main.pmConnectedPointsPopup(Sender: TObject);
|
||||
begin
|
||||
miShowConnectedConnCompons.Caption := F_ProjMan.Act_ConnectedConCompons.Caption;
|
||||
|
||||
@ -29,6 +29,7 @@ object F_CAD: TF_CAD
|
||||
OldCreateOrder = False
|
||||
Position = poDefault
|
||||
Visible = True
|
||||
WindowState = wsMinimized
|
||||
OnActivate = FormActivate
|
||||
OnCanResize = FormCanResize
|
||||
OnClose = FormClose
|
||||
|
||||
@ -1366,7 +1366,9 @@ const
|
||||
//VersionEXE = '3.0.3'; //27.12.2011 '1.5.7';
|
||||
// VersionEXE = '3.0.4'; //30.05.2022
|
||||
// VersionEXE = '3.0.5'; //09.12.2022
|
||||
VersionEXE = '3.0.6'; //08.12.2023
|
||||
//VersionEXE = '3.0.6'; //08.12.2023
|
||||
VersionEXE = '3.0.7'; //09.01.2025
|
||||
|
||||
{$ifend}
|
||||
|
||||
{$IF Defined(SCS_RF) or Defined(SCS_PE) or Defined(SCS_SPA)}
|
||||
@ -1647,6 +1649,10 @@ var
|
||||
GAllowExternalListCoordZ: Boolean = true; //22.08.2012 false - ïîçâîëÿòü èñïîëüçîâàòü ðàçíûå âûñîòû îáúåêòîâ íà ðàñïðåäåëèòåëüíîì ëèñòå
|
||||
GRaizeDownKoeff: Double = 4;
|
||||
|
||||
GFtpConnectStr: string = ''; // Tolik 23/12/2024 - ñòðîêà ïîäêëþ÷åíèÿ ê FTP ñåðâåðó äëÿ ðåçåðâíîãî êîïèðîâàíèÿ
|
||||
GFtpFromDisk: Boolean = True; // Tolik 23/12/2024
|
||||
GFtpToDisk: Boolean = True; // Tolik 23/12/2024
|
||||
|
||||
//************* Hot Keys *********************
|
||||
hkCtrlN,
|
||||
hkCtrlL,
|
||||
@ -5963,6 +5969,7 @@ end;
|
||||
// ÏÎËÓ×ÈÒÜ ÂÑÞ ÒÐÀÑÑÓ
|
||||
function GetAllTraceInCAD(AFigureServer, AFigureWS: TFigure): TList;
|
||||
var
|
||||
StartTick, CurrTick: Cardinal;
|
||||
CurrLength: Double;
|
||||
LastLength: Double;
|
||||
IDAutoTracingPropertyStr: String;
|
||||
@ -5980,6 +5987,7 @@ var
|
||||
ResultList: TList;
|
||||
|
||||
loopCounter: integer; // Tolik 22/07/2024
|
||||
AllCadTraceCount: integer; // Tolik 05/11/2024
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
Procedure GetStepInCAD(ASourceWS: TFigure; AInOrder: TList; ATraveledIndex: Integer);
|
||||
@ -5990,6 +5998,16 @@ var
|
||||
ConnectedIDList: TList;
|
||||
InOrder: TList; //New
|
||||
begin
|
||||
if GDropTracing then
|
||||
exit;
|
||||
CurrTick := GetTickCount;
|
||||
if ((CurrTick - StartTick) > 5000) then
|
||||
begin
|
||||
GDropTracing := true;
|
||||
//showmessage('Tracing dropped');
|
||||
end;
|
||||
if GDropTracing then // Tolik 11/11/2024 ñáðîñ ïî òàéìåðó (3 ñåê)
|
||||
exit;
|
||||
loopCounter := loopCounter + 1;
|
||||
ComponLength := 0;
|
||||
if CheckFigureByClassName(ASourceWS, cTConnectorObject) then
|
||||
@ -6086,19 +6104,270 @@ var
|
||||
CurrIDPathList.Delete(ATraveledIndex);
|
||||
end;
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//Tolik 04/11/2024
|
||||
function CheckNoTraceConnected(aObject: TFigure): Boolean;
|
||||
var i, j: integer;
|
||||
begin
|
||||
Result := True;
|
||||
if aObject is TConnectorObject then
|
||||
begin
|
||||
if TConnectorObject(aObject).ConnectorType = ct_Clear then
|
||||
begin
|
||||
Result := (TConnectorObject(aObject).JoinedOrtholinesList.Count = 0);
|
||||
exit;
|
||||
end
|
||||
else
|
||||
begin
|
||||
for i := 0 to TConnectorObject(aObject).JoinedConnectorsList.Count - 1 do
|
||||
begin
|
||||
if TConnectorObject(TConnectorObject(aObject).JoinedConnectorsList[i]).JoinedOrtholinesList.Count > 0 then
|
||||
begin
|
||||
Result := False;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
|
||||
function getCadTracesCount: integer;
|
||||
var i: integer;
|
||||
begin
|
||||
result := 0;
|
||||
if Assigned(GCadForm) then
|
||||
begin
|
||||
for i := 0 to GCadForm.FSCSFigures.Count - 1 do
|
||||
begin
|
||||
if TFigure(GCadForm.FSCSFigures[i]) is TOrthoLine then
|
||||
inc(Result);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Procedure GetStepInCADShort(aConn: TConnectorObject; aList: TList);
|
||||
var i, j, k, listIndex: integer;
|
||||
PassedList, NextPathList, NextConnsList, LinesList : TList;
|
||||
PathLength: double;
|
||||
JoinedConn, NextConn: TConnectorObject;
|
||||
currLine: TOrthoLine;
|
||||
|
||||
function NoCheckConnInPathList: boolean;
|
||||
var i: Integer;
|
||||
begin
|
||||
Result := True;
|
||||
for i := 0 to PassedList.Count - 1 do
|
||||
begin
|
||||
if TFigure(PassedList[i]).ID = NextConn.ID then
|
||||
begin
|
||||
Result := False;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function getNextListIndex: integer;
|
||||
var i: integer;
|
||||
dist, currDist: Double;
|
||||
conn: TConnectorObject;
|
||||
begin
|
||||
Result := 0;
|
||||
if NextConnsList.Count > 1 then
|
||||
begin
|
||||
Conn := TConnectorObject(NextConnsList[0]);
|
||||
if TOrthoLine(LinesList[0]).FIsVertical then
|
||||
currDist := sqrt(sqr(Conn.ap1.x - AFigureWS.ap1.x)+ sqr(Conn.ap1.y - AFigureWS.ap1.y)+sqr(Conn.ActualZOrder[1] - TConnectorObject(AFigureWS).ActualZOrder[1]))
|
||||
else
|
||||
currDist := sqrt(sqr(Conn.ap1.x - AFigureWS.ap1.x)+ sqr(Conn.ap1.y - AFigureWS.ap1.y));
|
||||
for i := 1 to NextConnsList.Count - 1 do
|
||||
begin
|
||||
Conn := TConnectorObject(NextConnsList[i]);
|
||||
if TOrthoLine(LinesList[i]).FIsVertical then
|
||||
dist := sqrt(sqr(Conn.ap1.x - AFigureWS.ap1.x)+ sqr(Conn.ap1.y - AFigureWS.ap1.y)+sqr(Conn.ActualZOrder[1] - TConnectorObject(AFigureWS).ActualZOrder[1]))
|
||||
else
|
||||
dist := sqrt(sqr(Conn.ap1.x - AFigureWS.ap1.x)+ sqr(Conn.ap1.y - AFigureWS.ap1.y));
|
||||
if comparevalue(dist, currdist) = -1 then
|
||||
begin
|
||||
currDist := dist;
|
||||
Result := i;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
begin
|
||||
loopCounter := loopCounter + 1;
|
||||
if loopCounter > 8000 then
|
||||
begin
|
||||
exit;
|
||||
end;
|
||||
PassedList := TList.Create;
|
||||
if aList <> nil then
|
||||
PassedList.Assign(aList, laCopy) //passed Way
|
||||
else
|
||||
PassedList.Add(aConn); // StartPoint
|
||||
NextConnsList := TList.Create;
|
||||
NextPathList := nil;
|
||||
PathLength := 0;
|
||||
LinesList := TList.Create;
|
||||
|
||||
if aConn.ConnectorType = ct_Clear then // clear connector
|
||||
begin
|
||||
JoinedConn := aConn;
|
||||
for i := 0 to JoinedConn.JoinedOrthoLinesList.Count - 1 do
|
||||
begin
|
||||
if TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector1.ID = JoinedConn.Id then
|
||||
NextConn := TConnectorObject(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector2)
|
||||
else
|
||||
NextConn := TConnectorObject(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector1);
|
||||
|
||||
if NextConn.JoinedConnectorsList.Count > 0 then
|
||||
NextConn := TConnectorObject(NextConn.JoinedConnectorsList[0]);
|
||||
|
||||
if NoCheckConnInPathList then
|
||||
begin
|
||||
if NextConn.ID = AFigureWS.ID then // Founded path
|
||||
begin
|
||||
PassedList.Add(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i])); // ïîñëåäíÿÿ òðàññà
|
||||
PassedList.Add(AFigureWS);
|
||||
for j := 0 to PassedList.Count - 1 do // calc Length
|
||||
begin
|
||||
if TFigure(PassedList[j]) is TOrthoLine then
|
||||
PathLength := PathLength + TOrthoLine(PassedList[j]).LineLength;
|
||||
end;
|
||||
if (PathLength < LastLength) or (LastLength = 0) then
|
||||
begin
|
||||
LastLength := PathLength;
|
||||
LastIDPathList.Clear;
|
||||
LastIDPathList.Assign(PassedList, laCopy);
|
||||
end;
|
||||
PassedList.Free;
|
||||
NextConnsList.Free;
|
||||
LinesList.Free;
|
||||
exit; // path is founded, exit
|
||||
end
|
||||
else
|
||||
begin
|
||||
NextConnsList.Add(NextConn);
|
||||
LinesList.Add(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else //ct_NB
|
||||
begin
|
||||
for k := 0 to aConn.JoinedConnectorsList.Count - 1 do
|
||||
begin
|
||||
JoinedConn := TConnectorObject(aConn.JoinedConnectorsList[k]);
|
||||
for i := 0 to JoinedConn.JoinedOrthoLinesList.Count - 1 do
|
||||
begin
|
||||
if TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector1.ID = JoinedConn.Id then
|
||||
NextConn := TConnectorObject(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector2)
|
||||
else
|
||||
NextConn := TConnectorObject(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]).JoinConnector1);
|
||||
|
||||
if NextConn.JoinedConnectorsList.Count > 0 then
|
||||
NextConn := TConnectorObject(NextConn.JoinedConnectorsList[0]);
|
||||
|
||||
if NoCheckConnInPathList then
|
||||
begin
|
||||
if NextConn.ID = AFigureWS.ID then // Founded path
|
||||
begin
|
||||
PassedList.Add(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i])); // ïîñëåäíÿÿ òðàññà
|
||||
PassedList.Add(AFigureWS);
|
||||
for j := 0 to PassedList.Count - 1 do // calc Length
|
||||
begin
|
||||
if TFigure(PassedList[j]) is TOrthoLine then
|
||||
PathLength := PathLength + TOrthoLine(PassedList[j]).LineLength;
|
||||
end;
|
||||
if (PathLength < LastLength) or (LastLength = 0) then
|
||||
begin
|
||||
LastLength := PathLength;
|
||||
LastIDPathList.Clear;
|
||||
LastIDPathList.Assign(PassedList, laCopy);
|
||||
end;
|
||||
PassedList.Free;
|
||||
NextConnsList.free;
|
||||
LinesList.Free;
|
||||
exit; // path is founded, exit
|
||||
end
|
||||
else
|
||||
begin
|
||||
NextConnsList.Add(NextConn);
|
||||
LinesList.Add(TOrthoLine(JoinedConn.JoinedOrthoLinesList[i]));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
if NextConnsList.Count > 0 then
|
||||
begin
|
||||
NextPathList := TList.Create;
|
||||
While NextConnsList.Count > 0 do // next steps
|
||||
begin
|
||||
NextPathList.Clear;
|
||||
NextPathList.Assign(PassedList, laCopy);
|
||||
ListIndex := getNextListIndex;
|
||||
NextConn := TConnectorObject(NextConnsList[ListIndex]);
|
||||
NextPathList.Add(LinesList[ListIndex]);
|
||||
NextPathList.Add(NextConn);
|
||||
LinesList.Delete(ListIndex);
|
||||
NextConnsList.Delete(ListIndex);
|
||||
GetStepInCADShort(NextConn, NextPathList);
|
||||
if LastIDPathList.Count > 0 then
|
||||
begin
|
||||
NextPathList.Free;
|
||||
PassedList.Free;
|
||||
NextConnsList.Free;
|
||||
LinesList.Free;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
NextPathList.Free;
|
||||
end;
|
||||
PassedList.Free;
|
||||
NextConnsList.Free;
|
||||
LinesList.Free;
|
||||
end;
|
||||
//
|
||||
begin
|
||||
Result := nil;
|
||||
loopCounter := 0;
|
||||
//Tolik 04/11/2024
|
||||
if (AFigureServer = nil) or (AFigureWS = nil) then
|
||||
exit;
|
||||
|
||||
if CheckNoTraceConnected(AFigureServer) then
|
||||
exit;
|
||||
|
||||
if CheckNoTraceConnected(AFigureWS) then
|
||||
exit;
|
||||
//
|
||||
try
|
||||
CurrIDPathList := Tlist.Create;
|
||||
CurrLength := 0;
|
||||
|
||||
LastIDPathList := Tlist.Create;
|
||||
LastLength := 0;
|
||||
|
||||
//Tolik 05/11/2024
|
||||
FSCS_Main.TimerTracingInterval.Enabled := true; // 11/11/2024 ñòàðò òàéìåðà äëÿ óñòàíîâêè ôëàæêà ñáðîñà àëãîðèòìà ïîèñêà ïóòè
|
||||
StartTick := GetTickCount; // 11/11/2024 --
|
||||
GetStepInCAD(AFigureServer, nil, 0);
|
||||
if GDropTracing then
|
||||
begin
|
||||
//GDropTracing := false;
|
||||
GetStepInCADShort(TConnectorObject(AFigureServer), nil);
|
||||
end;
|
||||
//else
|
||||
// GetStepInCAD(AFigureServer, nil, 0);
|
||||
|
||||
AllCadTraceCount := getCadTracesCount;
|
||||
//GetStepInCADShort(TConnectorObject(AFigureServer), nil);
|
||||
//GetStepInCADShort(TConnectorObject(AFigureWS), nil);
|
||||
//
|
||||
|
||||
begin
|
||||
ResultList := TList.Create;
|
||||
@ -6624,8 +6893,7 @@ var
|
||||
Exit;
|
||||
end;
|
||||
|
||||
(* {$IF Defined(FINAL_SCS) } // Tolik 26/05/2021 --*)
|
||||
|
||||
{$IF Defined(FINAL_SCS) } // Tolik 26/05/2021 --*
|
||||
CurrTick := Now - OldTick;
|
||||
if CurrTick > 0.00009 then
|
||||
begin
|
||||
@ -6661,7 +6929,7 @@ var
|
||||
end;
|
||||
end;
|
||||
|
||||
(* {$IFEND} // Tolik 26/05/2021 --*)
|
||||
{$IFEND} // Tolik 26/05/2021 --
|
||||
|
||||
CurrIDPathList.Add(ASourceWS);
|
||||
if (ASourceWS = AFigureWS) then
|
||||
@ -29321,6 +29589,7 @@ begin
|
||||
// ***
|
||||
if CurrentServer <> nil then
|
||||
begin
|
||||
GDropTracing := false;
|
||||
for i := 0 to ObjectsList.Count - 1 do
|
||||
begin
|
||||
CurrentWA := TConnectorObject(ObjectsList[i]);
|
||||
|
||||
423
SRC/Main/U_Reserv.dfm
Normal file
423
SRC/Main/U_Reserv.dfm
Normal file
@ -0,0 +1,423 @@
|
||||
object F_Reserv: TF_Reserv
|
||||
Left = 380
|
||||
Top = 178
|
||||
BorderIcons = [biSystemMenu]
|
||||
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 = 311
|
||||
ClientWidth = 532
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 32
|
||||
Top = 4
|
||||
Width = 180
|
||||
Height = 16
|
||||
Caption = #1057#1087#1080#1089#1086#1082' '#1092#1072#1081#1083#1086#1074' '#1085#1072' '#1089#1077#1088#1074#1077#1088#1077
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -13
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 32
|
||||
Top = 256
|
||||
Width = 286
|
||||
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' '
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 32
|
||||
Top = 280
|
||||
Width = 279
|
||||
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' '
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object lbAllowedSpace: TLabel
|
||||
Left = 320
|
||||
Top = 280
|
||||
Width = 3
|
||||
Height = 13
|
||||
Caption = ' '
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object lbUsedSpace: TLabel
|
||||
Left = 320
|
||||
Top = 256
|
||||
Width = 3
|
||||
Height = 13
|
||||
Caption = ' '
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 437
|
||||
Top = 278
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = #1047#1072#1082#1088#1099#1090#1100
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object ListBox1: TListBox
|
||||
Left = 32
|
||||
Top = 24
|
||||
Width = 345
|
||||
Height = 226
|
||||
ItemHeight = 13
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnSave: TBitBtn
|
||||
Left = 389
|
||||
Top = 24
|
||||
Width = 135
|
||||
Height = 41
|
||||
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
|
||||
object btnLoad: TBitBtn
|
||||
Left = 389
|
||||
Top = 96
|
||||
Width = 135
|
||||
Height = 41
|
||||
Caption = 'btnLoad'
|
||||
DoubleBuffered = True
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
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
|
||||
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
|
||||
object siLangLinked1: TsiLangLinked
|
||||
Version = '6.5.2'
|
||||
StringsTypes.Strings = (
|
||||
'TIB_STRINGLIST'
|
||||
'TSTRINGLIST')
|
||||
UseDefaultLanguage = True
|
||||
NumOfLanguages = 7
|
||||
LangDispatcher = F_LNG.siLangDisp
|
||||
LangDelim = 1
|
||||
LangNames.Strings = (
|
||||
'RUS'
|
||||
'UKR'
|
||||
'ENG'
|
||||
'GER'
|
||||
'FRA'
|
||||
'SPA'
|
||||
'RUS_ARH')
|
||||
Language = 'RUS'
|
||||
ExcludedProperties.Strings = (
|
||||
'Category'
|
||||
'SecondaryShortCuts'
|
||||
'HelpKeyword'
|
||||
'InitialDir'
|
||||
'HelpKeyword'
|
||||
'ActivePage'
|
||||
'ImeName'
|
||||
'DefaultExt'
|
||||
'FileName'
|
||||
'FieldName'
|
||||
'PickList'
|
||||
'DisplayFormat'
|
||||
'EditMask'
|
||||
'KeyList'
|
||||
'LookupDisplayFields'
|
||||
'DropDownSpecRow'
|
||||
'TableName'
|
||||
'DatabaseName'
|
||||
'IndexName'
|
||||
'MasterFields'
|
||||
'SQL'
|
||||
'DeleteSQL'
|
||||
'UpdateSQL'
|
||||
'ModifySQL'
|
||||
'KeyFields'
|
||||
'LookupKeyFields'
|
||||
'LookupResultField'
|
||||
'DataField'
|
||||
'KeyField'
|
||||
'ListField')
|
||||
Left = 64
|
||||
Top = 200
|
||||
TranslationData = {
|
||||
73007400430061007000740069006F006E0073005F0055006E00690063006F00
|
||||
640065000D000A00540046005F00520065007300650072007600010023043F04
|
||||
4004300432043B0435043D043804350420004004350437043504400432043D04
|
||||
4B043C04380420003A043E043F0438044F043C04380420003D04300420004304
|
||||
340430043B0435043D043D043E043C0420004104350440043204350440043504
|
||||
01001A04350440044304320430043D043D044F04200040043504370435044004
|
||||
32043D0438043C04380420003A043E043F0456044F043C04380420003D043004
|
||||
2000320456043404340430043B0435043D043E043C0443042000410435044004
|
||||
320435044004560401004D0061006E006100670069006E006700200062006100
|
||||
63006B0075007000730020006F006E00200061002000720065006D006F007400
|
||||
65002000730065007200760065007200010001000100010001000D000A004C00
|
||||
6100620065006C003100010021043F04380441043E043A042000440430043904
|
||||
3B043E04320420003D0430042000410435044004320435044004350401002104
|
||||
3F04380441043E043A0420004404300439043B045604320420003D0430042000
|
||||
410435044004320435044004560401004C0069007300740020006F0066002000
|
||||
660069006C006500730020006F006E0020007400680065002000730065007200
|
||||
760065007200010001000100010001000D000A004C006100620065006C003200
|
||||
0100170430043D044F0442043E0420003404380441043A043E0432043E043304
|
||||
3E0420003F0440043E0441044204400430043D04410442043204300420003D04
|
||||
3004200041043504400432043504400435042C0020001C043104200001001704
|
||||
300439043D044F0442043E0420003404380441043A043E0432043E0433043E04
|
||||
20003F0440043E04410442043E044004430420003D0430042000410435044004
|
||||
32043504400456042C0020001C04310401004400690073006B00200073007000
|
||||
61006300650020006F00630063007500700069006500640020006F006E002000
|
||||
74006800650020007300650072007600650072002C0020004D00420001000100
|
||||
0100010001000D000A004C006100620065006C00330001001B0438043C043804
|
||||
420420003404380441043A043E0432043E0433043E0420003F0440043E044104
|
||||
4204400430043D04410442043204300420003D04300420004104350440043204
|
||||
3504400435042C0020001C043104200001001B0456043C045604420420003404
|
||||
380441043A043E0432043E0433043E0420003F0440043E04410442043E044004
|
||||
430420003D043004200041043504400432043504400456042C0020001C043104
|
||||
010053006500720076006500720020006400690073006B002000730070006100
|
||||
6300650020006C0069006D00690074002C0020004D0042000100010001000100
|
||||
01000D000A006C00620041006C006C006F007700650064005300700061006300
|
||||
65000100200001000100010001000100010001000D000A006C00620055007300
|
||||
6500640053007000610063006500010020000100010001000100010001000100
|
||||
0D000A0042007500740074006F006E0031000100170430043A0440044B044204
|
||||
4C040100170430043A044004380442043804010043006C006F00730065000100
|
||||
01000100010001000D000A00620074006E005300610076006500010062007400
|
||||
6E00530061007600650001000100010001000100010001000D000A0062007400
|
||||
6E004C006F00610064000100620074006E004C006F0061006400010001000100
|
||||
01000100010001000D000A00620074006E00440065006C006500740065000100
|
||||
620074006E00440065006C006500740065000100010001000100010001000100
|
||||
0D000A0073007400480069006E00740073005F0055006E00690063006F006400
|
||||
65000D000A007300740044006900730070006C00610079004C00610062006500
|
||||
6C0073005F0055006E00690063006F00640065000D000A007300740046006F00
|
||||
6E00740073005F0055006E00690063006F00640065000D000A00540046005F00
|
||||
52006500730065007200760001005400610068006F006D006100010001000100
|
||||
01000100010001000D000A004C006100620065006C0031000100540061006800
|
||||
6F006D00610001000100010001000100010001000D000A004C00610062006500
|
||||
6C00320001005400610068006F006D0061000100010001000100010001000100
|
||||
0D000A004C006100620065006C00330001005400610068006F006D0061000100
|
||||
0100010001000100010001000D000A006C00620041006C006C006F0077006500
|
||||
64005300700061006300650001005400610068006F006D006100010001000100
|
||||
01000100010001000D000A006C00620055007300650064005300700061006300
|
||||
650001005400610068006F006D00610001000100010001000100010001000D00
|
||||
0A0042007500740074006F006E00310001005400610068006F006D0061000100
|
||||
0100010001000100010001000D000A00620074006E0053006100760065000100
|
||||
5400610068006F006D00610001000100010001000100010001000D000A006200
|
||||
74006E004C006F006100640001005400610068006F006D006100010001000100
|
||||
01000100010001000D000A00620074006E00440065006C006500740065000100
|
||||
5400610068006F006D00610001000100010001000100010001000D000A007300
|
||||
74004D0075006C00740069004C0069006E00650073005F0055006E0069006300
|
||||
6F00640065000D000A007300740053007400720069006E00670073005F005500
|
||||
6E00690063006F00640065000D000A00730074004F0074006800650072005300
|
||||
7400720069006E00670073005F0055006E00690063006F00640065000D000A00
|
||||
7300740043006F006C006C0065006300740069006F006E0073005F0055006E00
|
||||
690063006F00640065000D000A00730074004300680061007200530065007400
|
||||
73005F0055006E00690063006F00640065000D000A00540046005F0052006500
|
||||
73006500720076000100440045004600410055004C0054005F00430048004100
|
||||
520053004500540001000100010001000100010001000D000A004C0061006200
|
||||
65006C0031000100440045004600410055004C0054005F004300480041005200
|
||||
53004500540001000100010001000100010001000D000A004C00610062006500
|
||||
6C0032000100440045004600410055004C0054005F0043004800410052005300
|
||||
4500540001000100010001000100010001000D000A004C006100620065006C00
|
||||
33000100440045004600410055004C0054005F00430048004100520053004500
|
||||
540001000100010001000100010001000D000A006C00620041006C006C006F00
|
||||
770065006400530070006100630065000100440045004600410055004C005400
|
||||
5F00430048004100520053004500540001000100010001000100010001000D00
|
||||
0A006C0062005500730065006400530070006100630065000100440045004600
|
||||
410055004C0054005F0043004800410052005300450054000100010001000100
|
||||
0100010001000D000A0042007500740074006F006E0031000100440045004600
|
||||
410055004C0054005F0043004800410052005300450054000100010001000100
|
||||
0100010001000D000A00620074006E0053006100760065000100440045004600
|
||||
410055004C0054005F0043004800410052005300450054000100010001000100
|
||||
0100010001000D000A00620074006E004C006F00610064000100440045004600
|
||||
410055004C0054005F0043004800410052005300450054000100010001000100
|
||||
0100010001000D000A00620074006E00440065006C0065007400650001004400
|
||||
45004600410055004C0054005F00430048004100520053004500540001000100
|
||||
010001000100010001000D000A00}
|
||||
end
|
||||
end
|
||||
512
SRC/Main/U_Reserv.pas
Normal file
512
SRC/Main/U_Reserv.pas
Normal file
@ -0,0 +1,512 @@
|
||||
unit U_Reserv;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, Buttons,
|
||||
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
|
||||
IdExplicitTLSClientServerBase, IdFTP, idUri, idFTPCommon,idFTPLIST, IdAllFTPListParsers,
|
||||
IdFTPListParseBase,IdFTPListParseAS400, IdFTPListParsePcTcp, IdFTPListTypes,
|
||||
Wininet, siComp, siLngLnk;
|
||||
|
||||
|
||||
type
|
||||
TF_Reserv = class(TForm)
|
||||
Button1: TButton;
|
||||
ListBox1: TListBox;
|
||||
btnSave: TBitBtn;
|
||||
btnLoad: TBitBtn;
|
||||
btnDelete: TBitBtn;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
lbAllowedSpace: TLabel;
|
||||
lbUsedSpace: TLabel;
|
||||
siLangLinked1: TsiLangLinked;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure btnSaveClick(Sender: TObject);
|
||||
procedure btnLoadClick(Sender: TObject);
|
||||
procedure btnDeleteClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
function SendFileToFtp(aFtpStr, aFileName: string): boolean;
|
||||
function GetFileFromFtp(aFtpStr, aFileNameShort, aFileName: string; aGetConfig: Boolean = false): boolean;
|
||||
function GetFileListFromFtp(aFtpStr: string): TStringList;
|
||||
function DeleteFileFromFtp(aFtpStr, aFileName: string): boolean;
|
||||
Procedure RefreshFileList;
|
||||
Procedure SetButtons(aSave, aLoad, aDelete: Boolean);
|
||||
Procedure SelectItem;
|
||||
Function HexToStr(const HexStr: string): string;
|
||||
end;
|
||||
|
||||
var
|
||||
F_reserv: TF_Reserv;
|
||||
Selected_Item: integer;
|
||||
FClientLimit: integer; // Ëèìèò êëèåíòà íà äèñêîâîå ïðîñòðàíñòâî íà ñåðâàêå, ÌÁ
|
||||
FFact: Integer; // Çàíÿòî êëèåíòîì íà ñåðâåðå, ÌÁ
|
||||
//FConnStr: string;
|
||||
|
||||
implementation
|
||||
uses USCS_Main, U_Common, U_BaseCommon, U_BaseConstants;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
function TF_Reserv.HexToStr(const HexStr: string): string;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
Result := '';
|
||||
i := 1;
|
||||
while i <= Length(HexStr) do
|
||||
begin
|
||||
Result := Result + Chr(StrToInt('$' + Copy(HexStr, i, 2)) XOR 57);
|
||||
Inc(i, 2);
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TF_Reserv.SelectItem;
|
||||
var i: integer;
|
||||
begin
|
||||
if F_Reserv.ListBox1.Count > 0 then
|
||||
begin
|
||||
for i := 0 to F_Reserv.ListBox1.Count - 1 do
|
||||
begin
|
||||
if F_Reserv.ListBox1.Selected[i] = true then
|
||||
F_Reserv.ListBox1.Selected[i] := False;
|
||||
end;
|
||||
|
||||
if Selected_Item > (F_Reserv.ListBox1.Count - 1) then
|
||||
Selected_Item := (F_Reserv.ListBox1.Count - 1);
|
||||
|
||||
F_Reserv.ListBox1.Selected[Selected_Item] := true;
|
||||
end
|
||||
else
|
||||
Selected_Item := 0;
|
||||
end;
|
||||
|
||||
Procedure TF_Reserv.SetButtons(aSave, aLoad, aDelete: Boolean);
|
||||
begin
|
||||
F_Reserv.btnSave.Enabled := aSave;
|
||||
F_Reserv.btnLoad.Enabled := aLoad;
|
||||
F_Reserv.btnDelete.Enabled := aDelete;
|
||||
end;
|
||||
|
||||
Procedure TF_Reserv.RefreshFileList;
|
||||
var FileList: TStringList;
|
||||
i: integer;
|
||||
vSave, vLoad, vDelete: Boolean;
|
||||
s, tmppath, filename: String;
|
||||
f: TextFile;
|
||||
UserLimit: integer;
|
||||
begin
|
||||
vSave := False;
|
||||
vLoad := False;
|
||||
vDelete := False;
|
||||
//FConnStr := HexToStr(GFtpConnectStr);
|
||||
F_Reserv.ListBox1.Clear;
|
||||
tmppath := GetDefaultTempPath;//+'\' + 'USER.CFG';
|
||||
{ FileList := F_Reserv.GetFileListFromFtp(GFtpConnectStr);
|
||||
if FileList <> nil then
|
||||
begin
|
||||
F_Reserv.ListBox1.Clear;
|
||||
for i := 0 to fileList.Count - 1 do // Client Config
|
||||
begin
|
||||
if UPPERCASE(FileList[i]) = 'USER.CFG' then // ôàéë ñ îáúåìîì âûäåëåííîãî ìåñòà äëÿ ïîëüçîâàòåëÿ íà ñåðâàêå
|
||||
begin
|
||||
tmppath := GetDefaultTempPath+'\' + 'USER.CFG';
|
||||
if GetFileFromFtp(GFtpConnectStr, 'USER.CFG', tmppath) then //ïîëó÷èòü ñ ñåðâåðà è ïðî÷èòàòü ðàçìåð äîñòóïíîãî ìåñòà
|
||||
begin
|
||||
|
||||
end;
|
||||
end;
|
||||
//F_Reserv.ListBox1.AddItem(filelist[i], nil);
|
||||
end;
|
||||
if F_Reserv.ListBox1.Items.Count > 0 then
|
||||
SelectItem;
|
||||
fileList.Free;
|
||||
end;
|
||||
}
|
||||
FileName := tmppath + 'USER.CFG';
|
||||
if fileExists(FileName) then
|
||||
DeleteFile(FileNAme);
|
||||
if GetFileFromFtp(HexToStr(GFtpConnectStr), 'USER.CFG', tmppath + 'USER.CFG', true) then //ïîëó÷èòü ñ ñåðâåðà è ïðî÷èòàòü ðàçìåð äîñòóïíîãî ìåñòà
|
||||
begin
|
||||
AssignFile(f,FileName);
|
||||
Reset(f);
|
||||
Readln(f,s);
|
||||
CloseFile(f);
|
||||
UserLimit := strtoint(s);
|
||||
lballowedspace.Caption := s;
|
||||
vSave := true;
|
||||
vLoad := true;
|
||||
vDelete := true;
|
||||
////
|
||||
FileList := F_Reserv.GetFileListFromFtp(HexToStr(GFtpConnectStr));
|
||||
if FileList <> nil then
|
||||
begin
|
||||
F_Reserv.ListBox1.Clear;
|
||||
for i := 0 to fileList.Count - 1 do // Client Config
|
||||
begin
|
||||
F_Reserv.ListBox1.AddItem(filelist[i], nil);
|
||||
end;
|
||||
if F_Reserv.ListBox1.Items.Count = 0 then
|
||||
begin
|
||||
vDelete := False;
|
||||
vLoad := False;
|
||||
end;
|
||||
SelectItem;
|
||||
|
||||
fileList.Free;
|
||||
if UserLimit >= strtoint(lbUsedSpace.Caption) then
|
||||
vSave := True
|
||||
else
|
||||
vSave := False;
|
||||
end;
|
||||
end;
|
||||
SetButtons(vSave, vLoad, vDelete);
|
||||
end;
|
||||
|
||||
function TF_Reserv.SendFileToFtp(aFtpStr, aFileName: string): boolean;
|
||||
var NameShort: String;
|
||||
Ftp_serv: TIdFtp;
|
||||
Uri: TIdURI;
|
||||
begin
|
||||
Result := False;
|
||||
if FileExists(aFileName) then
|
||||
begin
|
||||
Uri := TIdUri.Create(aFtpStr);
|
||||
Ftp_serv:= TIdFtp.create;
|
||||
|
||||
ftp_serv.Host := uri.host;
|
||||
ftp_serv.Username := uri.username;
|
||||
ftp_serv.Password := uri.password;
|
||||
ftp_serv.Port := 21;
|
||||
ftp_serv.Passive := true;
|
||||
|
||||
try
|
||||
ftp_serv.Connect;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
//showmessage('Can not to connect!!!');
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
AddExceptionToLog(cFtpmes1, true);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if ftp_serv.Connected then
|
||||
begin
|
||||
NameShort := ExtractFileName(aFileName);
|
||||
try
|
||||
ftp_serv.Put(aFileName, NameShort);
|
||||
Result := True;
|
||||
except
|
||||
on E: exception do
|
||||
begin
|
||||
Result := False;
|
||||
AddExceptionToLog(cFtpmes2, true);
|
||||
//showMessage('Can not to send a file!');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
ftp_serv.Disconnect;
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TF_Reserv.GetFileFromFtp(aFtpStr, aFileNameShort, aFileName: string; aGetConfig: Boolean = false): boolean;
|
||||
var
|
||||
Ftp_serv: TIdFtp;
|
||||
Uri: TIdURI;
|
||||
begin
|
||||
Result := false;
|
||||
|
||||
Uri := TIdUri.Create(aFtpStr);
|
||||
Ftp_serv:= TIdFtp.create;
|
||||
|
||||
ftp_serv.Host := uri.host;
|
||||
ftp_serv.Username := uri.username;
|
||||
ftp_serv.Password := uri.password;
|
||||
ftp_serv.Port := 21;
|
||||
ftp_serv.Passive := true;
|
||||
|
||||
try
|
||||
ftp_serv.Connect;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
//showmessage('Can not to connect!!!');
|
||||
Result := false;
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
AddExceptionToLog(cFtpmes1, true);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if ftp_serv.Connected then
|
||||
begin
|
||||
if aGetConfig then
|
||||
begin
|
||||
try
|
||||
ftp_serv.ChangeDir('cfg');
|
||||
ftp_serv.get(aFileNameShort, aFileName);
|
||||
Result := True;
|
||||
except
|
||||
on E: exception do
|
||||
begin
|
||||
//showMessage('Can not to get file from ftp!');
|
||||
AddExceptionToLog(cFtpmes6, true);
|
||||
Result := False;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
try
|
||||
ftp_serv.ChangeDir('/');
|
||||
ftp_serv.get(aFileNameShort, aFileName);
|
||||
Result := True;
|
||||
except
|
||||
on E: exception do
|
||||
begin
|
||||
//showMessage('Can not to get file from ftp!');
|
||||
AddExceptionToLog(cFtpmes3, true);
|
||||
Result := False;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
ftp_serv.Disconnect;
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
end;
|
||||
|
||||
function TF_Reserv.GetFileListFromFtp(aFtpStr: string): TStringList;
|
||||
var
|
||||
Ftp_serv: TIdFtp;
|
||||
Uri: TIdURI;
|
||||
Size: Double;
|
||||
i, rsize: integer;
|
||||
begin
|
||||
Result := TstringList.Create;
|
||||
rsize := 0;
|
||||
Uri := TIdUri.Create(aFtpStr);
|
||||
Ftp_serv:= TIdFtp.create;
|
||||
|
||||
ftp_serv.Host := uri.host;
|
||||
ftp_serv.Username := uri.username;
|
||||
ftp_serv.Password := uri.password;
|
||||
ftp_serv.Port := 21;
|
||||
ftp_serv.Passive := true;
|
||||
|
||||
try
|
||||
ftp_serv.Connect;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
//showmessage('Can not to connect!!!');
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
FreeAndNil(Result);
|
||||
AddExceptionToLog(cFtpmes1, true);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if ftp_serv.Connected then
|
||||
begin
|
||||
try
|
||||
//ftp_serv.List(Result,'*.*',false);
|
||||
ftp_serv.ChangeDirUp;
|
||||
ftp_serv.List(Result,'*.scs', false);
|
||||
Size := 0;
|
||||
for i := 0 to ftp_serv.DirectoryListing.Count - 1 do
|
||||
begin
|
||||
Size := Size + ftp_serv.Size(ftp_serv.DirectoryListing[i].FileName);
|
||||
end;
|
||||
rsize := round(size/1048576);
|
||||
lbUsedSpace.Caption := inttostr(rsize);
|
||||
if rsize >= strtoint(lballowedspace.Caption) then
|
||||
lbUsedSpace.Font.Color := clRed
|
||||
else
|
||||
lbUsedSpace.Font.Color := clBlue;
|
||||
//ftp_serv.List(Result,'', false);
|
||||
except
|
||||
on E: exception do
|
||||
begin
|
||||
//showmessage('Can not get filelist from FTP!');
|
||||
FreeAndNil(Result);
|
||||
AddExceptionToLog(cFtpmes5, true);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
ftp_serv.Disconnect;
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
end;
|
||||
|
||||
function TF_Reserv.DeleteFileFromFtp(aFtpStr, aFileName: string): boolean;
|
||||
var
|
||||
Ftp_serv: TIdFtp;
|
||||
Uri: TIdURI;
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
Uri := TIdUri.Create(aFtpStr);
|
||||
Ftp_serv:= TIdFtp.create;
|
||||
|
||||
ftp_serv.Host := uri.host;
|
||||
ftp_serv.Username := uri.username;
|
||||
ftp_serv.Password := uri.password;
|
||||
ftp_serv.Port := 21;
|
||||
ftp_serv.Passive := true;
|
||||
|
||||
try
|
||||
ftp_serv.Connect;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
//showmessage('Can not to connect!!!');
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
AddExceptionToLog(cFtpmes1, true);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if ftp_serv.Connected then
|
||||
begin
|
||||
try
|
||||
ftp_serv.Delete(aFileName);
|
||||
Result := True;
|
||||
except
|
||||
on E: exception do
|
||||
begin
|
||||
Result := False;
|
||||
//showMessage('Can not to send a file!');
|
||||
AddExceptionToLog(cFtpmes4, true);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
ftp_serv.Disconnect;
|
||||
ftp_serv.Free;
|
||||
URi.Free;
|
||||
end;
|
||||
|
||||
|
||||
procedure TF_Reserv.btnDeleteClick(Sender: TObject);
|
||||
var i: integer;
|
||||
begin
|
||||
if ListBox1.Count > 0 then
|
||||
begin
|
||||
for i := 0 to ListBox1.Count - 1 do
|
||||
begin
|
||||
if ListBox1.Selected[i] = true then
|
||||
begin
|
||||
Selected_Item := i;
|
||||
if DeleteFileFromFtp(HexToStr(GFtpConnectStr), ListBox1.Items[i]) then
|
||||
begin
|
||||
RefreshFileList;
|
||||
end;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TF_Reserv.btnLoadClick(Sender: TObject);
|
||||
var SaveDlg: TSaveDialog;
|
||||
FileName: string;
|
||||
i: integer;
|
||||
begin
|
||||
FileName := '';
|
||||
for i := 0 to ListBox1.Count - 1 do
|
||||
begin
|
||||
if ListBox1.Selected[i] = true then
|
||||
begin
|
||||
FileName := ListBox1.Items[i];
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
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.btnSaveClick(Sender: TObject);
|
||||
var OpenDlg: TOpenDialog;
|
||||
FileNameShort, Filename: string;
|
||||
i: integer;
|
||||
|
||||
begin
|
||||
for i := 0 to ListBox1.Count - 1 do
|
||||
begin
|
||||
if ListBox1.Selected[i] = true then
|
||||
begin
|
||||
Selected_Item := i;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
OpenDlg := TOpenDialog.Create(nil);
|
||||
OpenDlg.Filter := ' (*.scs)|*.SCS';
|
||||
if OpenDlg.Execute then
|
||||
begin
|
||||
FileName := OpenDlg.FileName;
|
||||
//FileNameShort := ExtractFileName(OpenDlg.FileName);
|
||||
if SendFileToFtp(HexToStr(GFtpConnectStr), FileName) then
|
||||
RefreshFileList;
|
||||
end;
|
||||
OpenDlg.Free;
|
||||
end;
|
||||
|
||||
procedure TF_Reserv.Button1Click(Sender: TObject);
|
||||
begin
|
||||
F_Reserv.Close;
|
||||
end;
|
||||
|
||||
procedure TF_Reserv.FormCreate(Sender: TObject);
|
||||
begin
|
||||
{
|
||||
btnSave.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' íà ñåðâåð';
|
||||
btnLoad.Caption := 'Çàãðóçèòü ôàéë' + #13#10 + ' ñ ñåðâåðà';
|
||||
btnDelete.Caption := 'Óäàëèòü ôàéë' + #13#10 + ' íà ñåðâåðå';
|
||||
}
|
||||
btnSave.Caption := cFtpbtnSaveCaption;
|
||||
btnLoad.Caption := cFtpbtnLoadCaption;
|
||||
btnDelete.Caption := cFtpbtnDeleteCaption;
|
||||
|
||||
Selected_Item := 0;
|
||||
FClientLimit := 0;
|
||||
FFact := 0;
|
||||
lballowedspace.Font.Color := clBlue;
|
||||
lbUsedSpace.Font.Color := clBlue;
|
||||
end;
|
||||
|
||||
procedure TF_Reserv.FormShow(Sender: TObject);
|
||||
var FileList: TStringList;
|
||||
i: integer;
|
||||
begin
|
||||
RefreshFileList;
|
||||
//SelectItem;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
@ -24,11 +24,16 @@ const
|
||||
//DateEXE = '09.12.22';
|
||||
//DateEXEPE = 'December, 09, 2022';
|
||||
//BuildEXE = '381';
|
||||
|
||||
{
|
||||
DateEXE = '27.03.24';
|
||||
DateEXEPE = 'March, 27, 2024';
|
||||
|
||||
BuildEXE = '384';
|
||||
}
|
||||
DateEXE = '10.01.25';
|
||||
DateEXEPE = 'January, 10, 2025';
|
||||
|
||||
BuildEXE = '385';
|
||||
|
||||
DownLoadPath = 'c:\temp\';
|
||||
|
||||
|
||||
@ -870,6 +870,7 @@ const // RefreshListType
|
||||
stiExport = 7; // Tolik 11/07/2019 - -
|
||||
sti3D = 8; // Tolik 03/10/2019
|
||||
stiElectrical = 9; // Tolik 02/03/2021 --
|
||||
stiReserv = 10;// Tolik 28/12/2024 -- резервное копирование
|
||||
//
|
||||
|
||||
// UseKindInProj:
|
||||
@ -5954,6 +5955,7 @@ var
|
||||
GNeedReRaiseProperties: boolean = False;
|
||||
|
||||
GLoadPCadBackGroundImage: Boolean = False; // Tolik 29/01/2020 -- ïðèçíàê òîãî, ÷òî ãðóçèòñÿ ðàñòðîâîå èçîáðàæåíèå íà ïîäëîæêó Êàäà
|
||||
GDropTracing: Boolean = false;// Tolik 11/11/2024 -- флажок сброса трассировки, если долго идет расчет пути
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
@ -642,6 +642,7 @@ const
|
||||
cBaseOptions_Msg2_7 = 'Експорт DWG/DXF'; // настройки для експорта DWG/DXF
|
||||
cBaseOptions_Msg2_8 = '3Д'; // Tolik 03/10/2019 -- настройки для 3Д модели
|
||||
cBaseOptions_Msg2_9 = 'Электрика'; // Tolik 03/02/2021 -- настройки для электрики сюда будем совать ....
|
||||
cBaseOptions_Msg2_10 = 'Резервное копирование';
|
||||
//
|
||||
|
||||
|
||||
@ -3223,6 +3224,18 @@ const
|
||||
|
||||
cmAutoLabel_caption = 'Не предлагать вводить маркировку' + #13#10 +
|
||||
'вручную.Маркировать автоматически';
|
||||
//Tolik 06/01/2025 -- резервное копирование на FTP сервер
|
||||
cFtpbtnSaveCaption = 'Загрузить файл' + #13#10 + ' на сервер';
|
||||
cFtpbtnLoadCaption = 'Загрузить файл' + #13#10 + ' с сервера';
|
||||
cFtpbtnDeleteCaption = 'Удалить файл' + #13#10 + ' на сервере';
|
||||
|
||||
cFtpmes1 = 'Не удалось подключиться к серверу!';
|
||||
cFtpmes2 = 'Не удалось загрузить файл на сервер!';
|
||||
cFtpmes3 = 'Не удалось загрузить файл с сервера';
|
||||
cFtpmes4 = 'Не удалось удалить файл на сервере!';
|
||||
cFtpmes5 = 'Не удалось получить список файлов с сервера!';
|
||||
cFtpmes6 = 'Не удалось определить лимит пользователя!';
|
||||
|
||||
{$IFEND}
|
||||
|
||||
implementation
|
||||
|
||||
@ -502,6 +502,8 @@
|
||||
cBaseOptions_Msg2_7 = 'Export DWG/DXF'; // íàñòðîéêè äëÿ åêñïîðòà DWG/DXF
|
||||
cBaseOptions_Msg2_8 = '3D'; // Tolik 03/10/2019 --
|
||||
cBaseOptions_Msg2_9 = 'Electrical'; // Tolik 03/02/2021 --
|
||||
cBaseOptions_Msg2_10 = 'Backup'; // Tolik (for FTP)
|
||||
|
||||
//
|
||||
|
||||
//-----------------------------------------------
|
||||
@ -3253,3 +3255,15 @@
|
||||
|
||||
cmAutoLabel_caption = 'Do not offer to label manually.' + #13#10 +
|
||||
'Label automatically.';
|
||||
|
||||
//Tolik 06/01/2025 -- FTP
|
||||
cFtpbtnSaveCaption = 'Upload file' + #13#10 + ' to server';
|
||||
cFtpbtnLoadCaption = 'Download file' + #13#10 + ' from server';
|
||||
cFtpbtnDeleteCaption = 'Delete file' + #13#10 + ' from server';
|
||||
|
||||
cFtpmes1 = 'Failed to connect to the server!';
|
||||
cFtpmes2 = 'Failed to upload file to the server!';
|
||||
cFtpmes3 = 'Failed to download file from the server';
|
||||
cFtpmes4 = 'Failed to delete file on the server!';
|
||||
cFtpmes5 = 'Failed to get list of files from the server!';
|
||||
cFtpmes6 = 'Unable to determine user limit!';
|
||||
|
||||
@ -631,6 +631,8 @@
|
||||
cBaseOptions_Msg2_7 = 'Åêñïîðò DWG/DXF';
|
||||
cBaseOptions_Msg2_8 = '3Ä'; // Tolik 03/10/2019 --
|
||||
cBaseOptions_Msg2_9 = 'Åëåêòðèêà';
|
||||
cBaseOptions_Msg2_10 = 'Резервне копіювання';
|
||||
|
||||
//
|
||||
|
||||
|
||||
@ -3210,3 +3212,14 @@
|
||||
|
||||
cmAutoLabel_caption = 'Íå ïðîïîíóâàòè ââîäèòè ìàðêóâàííÿ' + #13#10 +
|
||||
'âðó÷íó. Ìàðêóâàòè àâòîìàòè÷íî';
|
||||
//Tolik 06/01/2025 -- резервное копирование на FTP сервер
|
||||
cFtpbtnSaveCaption = 'Завантажити файл' + #13#10 + ' на сервер';
|
||||
cFtpbtnLoadCaption = 'Завантажити файл' + #13#10 + ' з сервера';
|
||||
cFtpbtnDeleteCaption = 'Видалити файл' + #13#10 + ' на сервері';
|
||||
|
||||
cFtpmes1 = 'Не вдалося підключитися до сервера!';
|
||||
cFtpmes2 = 'Не вдалося завантажити файл на сервер!';
|
||||
cFtpmes3 = 'Не вдалося завантажити файл з сервера';
|
||||
cFtpmes4 = 'Не вдалося видалити файл на сервері!';
|
||||
cFtpmes5 = 'Не вдалося отримати список файлів з сервера!';
|
||||
cFtpmes6 = 'Не вдалося визначити ліміт користувача!';
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,8 @@ uses
|
||||
RzRadChk, RzCmboBx,
|
||||
|
||||
U_BaseCommon, U_BaseConstants, U_Common, siComp, siLngLnk, ComCtrls, RzSpnEdt,
|
||||
Buttons, RzLabel{Tolik -- 02/03/2017 }, iniFiles;
|
||||
Buttons, RzLabel{Tolik -- 02/03/2017 }, iniFiles, RzRadGrp,
|
||||
USCS_Main;
|
||||
|
||||
type
|
||||
TF_BaseOptions = class(TForm)
|
||||
@ -143,6 +144,10 @@ type
|
||||
cbAllowDropCableToRoute: TRzCheckBox;
|
||||
cbAutoRouteCable: TRzCheckBox;
|
||||
cbAutoAddNetworkEquipment: TRzCheckBox;
|
||||
tsReserv: TRzTabSheet;
|
||||
lbReserv: TLabel;
|
||||
Label21: TLabel;
|
||||
mdFtpConnect: TMemo;
|
||||
procedure btChoiceMainCurrencyClick(Sender: TObject);
|
||||
procedure btChoiceSecondCurrencyClick(Sender: TObject);
|
||||
procedure cbMainCurrencyChange(Sender: TObject);
|
||||
@ -603,6 +608,16 @@ begin
|
||||
cbTraceElectric.Checked := Ini.ReadBool('Electrical', 'TraceElectrical', true);
|
||||
end;
|
||||
//
|
||||
//Tolik 02/01/2025 -- ðåçåðâíîå êîïèðîâàíèå
|
||||
mdFtpConnect.Text := GFtpConnectStr;
|
||||
if Ini.SectionExists('ReservFtp') then
|
||||
begin
|
||||
//cbTraceElectric.Checked := Ini.ReadBool('Electrical', 'TraceElectrical', false);
|
||||
mdFtpConnect.Text := Ini.ReadString('ReservFtp', 'ConnectString', '');
|
||||
end
|
||||
else
|
||||
mdFtpConnect.Text := '';
|
||||
//
|
||||
end;
|
||||
// íà äóðàêà
|
||||
if StrToInt(edMaxSplinePointsCount.Text) < 1 then
|
||||
@ -746,6 +761,11 @@ begin
|
||||
ini.WriteBool('Electrical', 'TraceElectrical', cbTraceElectric.Checked);
|
||||
GCallElectricAutoTraceMaster := cbTraceElectric.Checked;
|
||||
//
|
||||
//Tolik 02/01/2025 -- ðåçåðâíîå êîïèðîâàíèå
|
||||
ini.WriteString('ReservFtp', 'ConnectString', mdFtpConnect.Text);
|
||||
GFtpConnectStr := mdFtpConnect.Text;
|
||||
FSCS_Main.mnuReserv.Enabled := GFtpConnectStr <> '';
|
||||
//
|
||||
Ini.Free;
|
||||
//
|
||||
FNormBase.WriteOptionsToINI;
|
||||
@ -1098,6 +1118,7 @@ begin
|
||||
AddElementTypeToTree(cBaseOptions_Msg2_8, sti3D, ts3D, lb3D); // Tolik 11/07/2019
|
||||
AddElementTypeToTree(cBaseOptions_Msg2_9, stiElectrical, tsElectrical, lbElectrical); // Tolik 02/03/2021 -- ðàçäåë íàñòðîåê äëÿ ýëåêòðèêè
|
||||
//
|
||||
AddElementTypeToTree(cBaseOptions_Msg2_10, stiReserv, tsReserv, lbReserv); // Tolik 28/12/2024 -- ðàçäåë íàñòðîåê äëÿ ðåçåðâíîãî êîïèðîâàíèÿ
|
||||
tvSettingTypes.Selected := tvSettingTypes.Items[1];
|
||||
|
||||
//*** ßçûêè äåçàéíåðà îò÷åòîâ
|
||||
@ -1169,6 +1190,13 @@ begin
|
||||
//cbTraceElectric.Checked := ProgIni.ReadBool('Electrical', 'TraceElectrical', false);
|
||||
cbTraceElectric.Checked := ProgIni.ReadBool('Electrical', 'TraceElectrical', true);
|
||||
end;
|
||||
//
|
||||
//Tolik 02/01/2025 --
|
||||
if (ProgIni <> nil) and ProgIni.SectionExists('ReservFtp') then
|
||||
begin
|
||||
mdFtpConnect.Text := ProgIni.ReadString('ReservFtp', 'ConnectString', '');
|
||||
end;
|
||||
//
|
||||
|
||||
if (ProgIni <> nil) and ProgIni.SectionExists('ImportDxf') then
|
||||
begin
|
||||
|
||||
@ -34,7 +34,7 @@ const scNormBase = 'NormBase';
|
||||
scCompTypeGroups = 'CompTypeGroups';
|
||||
|
||||
scElectrical = 'Electrical'; // Tolik 03/03/2021 --
|
||||
|
||||
scReservFtp = 'ReservFtp'; // Tolik 02/01/2025 -- для резервного копирования на ФТП
|
||||
idtSelectedCompType = 'SelectedCompType';
|
||||
//idtGroupCondition = 'GroupCondition';
|
||||
|
||||
@ -107,6 +107,7 @@ const idtPath = 'Path';
|
||||
idtAllowDropCableToRoute = 'AllowDropCableToRoute'; // Tolik 28/05/2021 --
|
||||
idtAutoRouteCableAfterTraceCreation = 'AutoRouteCableAfterTraceCreation'; // Tolik 09/08/2021 --
|
||||
idtAutoAddNetworkEquipment = 'AutoAddNetworkEquipment'; // Tolik 26/03/2024
|
||||
idtConnectString = 'ConnectString'; // Tolik 02/01/2025 --
|
||||
|
||||
//idtDirProjs = 'DirProjs';
|
||||
//idtDirCompons = 'DirCompons';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
object F_MAIN: TF_MAIN
|
||||
Left = 867
|
||||
Top = 27
|
||||
Top = 0
|
||||
HorzScrollBar.Color = clBtnFace
|
||||
HorzScrollBar.ParentColor = False
|
||||
VertScrollBar.Color = clBtnFace
|
||||
@ -9,7 +9,7 @@ object F_MAIN: TF_MAIN
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsNone
|
||||
Caption = #1053#1086#1088#1084#1072#1090#1080#1074#1085#1072#1103' '#1073#1072#1079#1072' '#1057#1050#1057' '#1082#1086#1084#1087#1086#1085#1077#1085#1090#1086#1074
|
||||
ClientHeight = 711
|
||||
ClientHeight = 696
|
||||
ClientWidth = 357
|
||||
Color = clWindow
|
||||
Constraints.MinWidth = 160
|
||||
@ -39,7 +39,7 @@ object F_MAIN: TF_MAIN
|
||||
TextHeight = 13
|
||||
object Panel_OKCancel: TPanel
|
||||
Left = 0
|
||||
Top = 650
|
||||
Top = 635
|
||||
Width = 357
|
||||
Height = 61
|
||||
Align = alBottom
|
||||
@ -52,6 +52,7 @@ object F_MAIN: TF_MAIN
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
Visible = False
|
||||
ExplicitTop = 650
|
||||
object Label_Kolvo: TLabel
|
||||
Left = 16
|
||||
Top = 8
|
||||
@ -99,7 +100,7 @@ object F_MAIN: TF_MAIN
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 357
|
||||
Height = 650
|
||||
Height = 635
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
DockSite = True
|
||||
@ -110,9 +111,10 @@ object F_MAIN: TF_MAIN
|
||||
OnDblClick = Panel_Main1Click
|
||||
OnResize = Panel_MainResize
|
||||
OnUnDock = Panel_MainUnDock
|
||||
ExplicitHeight = 650
|
||||
object Panel_Addition: TRzSizePanel
|
||||
Left = 0
|
||||
Top = 449
|
||||
Top = 434
|
||||
Width = 357
|
||||
Height = 201
|
||||
Align = alBottom
|
||||
@ -123,6 +125,7 @@ object F_MAIN: TF_MAIN
|
||||
SizeBarWidth = 7
|
||||
TabOrder = 0
|
||||
VisualStyle = vsClassic
|
||||
ExplicitTop = 449
|
||||
object ToolBar_CompData: TToolBar
|
||||
Left = 0
|
||||
Top = 47
|
||||
@ -1294,7 +1297,7 @@ object F_MAIN: TF_MAIN
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 357
|
||||
Height = 449
|
||||
Height = 434
|
||||
ActivePage = tsComponents
|
||||
SaveResources = True
|
||||
Align = alClient
|
||||
@ -1321,11 +1324,13 @@ object F_MAIN: TF_MAIN
|
||||
TabStyle = tsSquareCorners
|
||||
OnChange = pcObjectsChange
|
||||
OnMouseMove = pcObjectsMouseMove
|
||||
ExplicitHeight = 449
|
||||
FixedDimension = 22
|
||||
object tsTemplates: TRzTabSheet
|
||||
Hint = #1054#1073#1098#1077#1082#1090#1099
|
||||
ImageIndex = 1
|
||||
Caption = #1054#1073#1098#1077#1082#1090#1099
|
||||
ExplicitHeight = 449
|
||||
object lvTemplates: TRzListView
|
||||
Left = 160
|
||||
Top = 30
|
||||
@ -1453,11 +1458,12 @@ object F_MAIN: TF_MAIN
|
||||
ImageIndex = 2
|
||||
Caption = #1050#1086#1084#1087#1086#1085#1077#1085#1090#1099
|
||||
OnResize = tsComponentsResize
|
||||
ExplicitHeight = 449
|
||||
object Panel_Tree: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 332
|
||||
Height = 449
|
||||
Height = 434
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
Caption = #1055#1072#1087#1082#1080
|
||||
@ -1475,6 +1481,7 @@ object F_MAIN: TF_MAIN
|
||||
OnEndDock = Panel_TreeEndDock
|
||||
OnMouseMove = Panel_TreeMouseMove
|
||||
OnStartDock = Panel_TreeStartDock
|
||||
ExplicitHeight = 449
|
||||
object splFindInTree: TSplitter
|
||||
Left = 0
|
||||
Top = 201
|
||||
@ -1579,7 +1586,7 @@ object F_MAIN: TF_MAIN
|
||||
Left = 0
|
||||
Top = 204
|
||||
Width = 332
|
||||
Height = 226
|
||||
Height = 211
|
||||
Align = alClient
|
||||
DoubleBuffered = True
|
||||
DragMode = dmAutomatic
|
||||
@ -1618,6 +1625,7 @@ object F_MAIN: TF_MAIN
|
||||
OnMouseMove = Tree_CatalogMouseMove
|
||||
OnMouseUp = Tree_CatalogMouseUp
|
||||
OnStartDrag = Tree_CatalogStartDrag
|
||||
ExplicitHeight = 226
|
||||
end
|
||||
object Panel_New: TPanel
|
||||
Left = -169
|
||||
@ -1709,10 +1717,6 @@ object F_MAIN: TF_MAIN
|
||||
FixedDimension = 13
|
||||
object tsFind: TRzTabSheet
|
||||
Caption = #1055#1086#1080#1089#1082
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 0
|
||||
ExplicitHeight = 0
|
||||
object Panel2: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
@ -2166,13 +2170,14 @@ object F_MAIN: TF_MAIN
|
||||
end
|
||||
object pnFilterIsOn: TRzPanel
|
||||
Left = 0
|
||||
Top = 430
|
||||
Top = 415
|
||||
Width = 332
|
||||
Height = 19
|
||||
Align = alBottom
|
||||
BorderInner = fsFlat
|
||||
BorderOuter = fsNone
|
||||
TabOrder = 4
|
||||
ExplicitTop = 430
|
||||
object lbFilterIsOn: TRzLabel
|
||||
Left = 8
|
||||
Top = 2
|
||||
@ -2215,6 +2220,7 @@ object F_MAIN: TF_MAIN
|
||||
Caption = #1043#1088#1091#1087#1087#1099
|
||||
ParentShowHint = False
|
||||
ShowHint = False
|
||||
ExplicitHeight = 449
|
||||
object Splitter1: TSplitter
|
||||
Left = 0
|
||||
Top = 105
|
||||
@ -2550,7 +2556,7 @@ object F_MAIN: TF_MAIN
|
||||
Left = 0
|
||||
Top = 108
|
||||
Width = 332
|
||||
Height = 341
|
||||
Height = 326
|
||||
SmoothExpandCollapse = False
|
||||
FitColumnToClientWidth = True
|
||||
RightClickSelect = True
|
||||
@ -2583,6 +2589,7 @@ object F_MAIN: TF_MAIN
|
||||
Images = DM.ImageList_Dir
|
||||
ToolTips = True
|
||||
ToolTipPause = 1000
|
||||
ExplicitHeight = 341
|
||||
Data = {
|
||||
DA000000010000000610540046006C0079004E006F0064006500C0000000060E
|
||||
440061007400610049006E0074001800000000000000061449006D0061006700
|
||||
@ -8296,7 +8303,7 @@ object F_MAIN: TF_MAIN
|
||||
Left = 200
|
||||
Top = 152
|
||||
Bitmap = {
|
||||
494C0101040050011C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
494C010104005001200310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000400000002000000001002000000000000020
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user