mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-12 00:45:40 +02:00
2006 lines
80 KiB
ObjectPascal
2006 lines
80 KiB
ObjectPascal
unit U_ConnectComplWith;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, cxLookAndFeelPainters, ComCtrls, StdCtrls, cxButtons, ExtCtrls,
|
||
RzPanel,
|
||
|
||
U_BaseCommon, U_BaseConstants, U_Common, U_SCSComponent, cxControls, cxContainer, cxEdit,
|
||
cxTextEdit, cxMaskEdit, cxSpinEdit, RzButton, RzRadChk, ToolWin, ImgList,
|
||
RzTreeVw, siComp, siLngLnk, RapTree, Mask, RzEdit, cxGraphics, cxLookAndFeels,
|
||
Menus;
|
||
|
||
type
|
||
TConnectComplWithFormMode = (
|
||
ccwConnectComplWith,
|
||
ccwDefineReplaceCompon,
|
||
ccwDefineReplaceCableCanal,
|
||
ccwDefineCableCanalConnector,
|
||
ccwDefineCableForJoinToPoints,
|
||
ccwGetComponentFromNB,
|
||
ccwDefineTubeConnector // Tolik 15/11/2021 --
|
||
);
|
||
|
||
TF_ConnectComplWith = class(TForm)
|
||
RzPanel1: TRzPanel;
|
||
Panel_OkCancel: TRzPanel;
|
||
Button_OK: TcxButton;
|
||
Button_Cancel: TcxButton;
|
||
pnApplyForCurrList: TRzPanel;
|
||
cbApplyForCurrList: TRzCheckBox;
|
||
pnConnectBy: TRzPanel;
|
||
pnComponents: TRzPanel;
|
||
Panel_FullMorePercent: TRzPanel;
|
||
Label1: TLabel;
|
||
Label2: TLabel;
|
||
SpinEdit_FullMorePercent: TcxSpinEdit;
|
||
GroupBox_ConnectWith: TRzGroupBox;
|
||
ListView_ConnectWith: TListView;
|
||
Panel_ComponFullnessPercent: TRzPanel;
|
||
Label_ComponFullness: TLabel;
|
||
Splitter: TSplitter;
|
||
GroupBox_ConnectBy: TRzGroupBox;
|
||
lbNBNodeInfo: TLabel;
|
||
pnReplaceCanalsInfo: TRzPanel;
|
||
GroupBox_ReplaceInfo: TRzGroupBox;
|
||
Memo_ReplaceInfo: TMemo;
|
||
splReplaceInfo: TSplitter;
|
||
gbComponentsToReplace: TRzGroupBox;
|
||
lvComponentsToBeReplace: TListView;
|
||
tvComponentsToBeReplace: TRzCheckTree;
|
||
splReplaceCanalsInfo: TSplitter;
|
||
cbApplyForComplects: TRzCheckBox;
|
||
cbLeaveComplectsInTarget: TRzCheckBox;
|
||
lng_Forms: TsiLangLinked;
|
||
pnNewComponIndex: TPanel;
|
||
Label3: TLabel;
|
||
neNewComponIndex: TRzNumericEdit;
|
||
Label4: TLabel;
|
||
cbApplyForCurrProj: TRzCheckBox;
|
||
cbApplyForOnlySelected: TRzCheckBox;
|
||
procedure FormHide(Sender: TObject);
|
||
procedure ListView_ConnectWithChange(Sender: TObject; Item: TListItem;
|
||
Change: TItemChange);
|
||
procedure ListView_ConnectByChange(Sender: TObject; Item: TListItem;
|
||
Change: TItemChange);
|
||
procedure Button_OKClick(Sender: TObject);
|
||
procedure Panel_OkCancelResize(Sender: TObject);
|
||
procedure SpinEdit_FullMorePercentPropertiesChange(Sender: TObject);
|
||
procedure ListView_ConnectWithSelectItem(Sender: TObject;
|
||
Item: TListItem; Selected: Boolean);
|
||
procedure lvComponentsToBeReplaceSelectItem(Sender: TObject;
|
||
Item: TListItem; Selected: Boolean);
|
||
procedure tvComponentsToBeReplaceStateChange(Sender: TObject;
|
||
Node: TTreeNode; NewState: TRzCheckState);
|
||
procedure tvComponentsToBeReplaceChange(Sender: TObject;
|
||
Node: TTreeNode);
|
||
procedure SpinEdit_FullMorePercentKeyPress(Sender: TObject;
|
||
var Key: Char);
|
||
procedure cbApplyForCurrListClick(Sender: TObject);
|
||
procedure cbApplyForCurrProjClick(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
GForm: TForm;
|
||
FFormMode: TConnectComplWithFormMode;
|
||
|
||
FCanChangeTreeInMainForm: Boolean;
|
||
FCurrNode: TTreeNode;
|
||
FComponent: TSCSComponent;
|
||
FConnectCompon: TSCSComponent;
|
||
|
||
FAllCableCanals: TSCSComponents;
|
||
FCableCanalsToCanReplace: TSCSComponents;
|
||
FCableCanalsToBeReplace: TSCSComponents;
|
||
FMaxCableCanalToReplaceVolume: Double;
|
||
FMinNBCableCanalVolume: Double;
|
||
|
||
FReplaceComponent: TSCSComponent;
|
||
FEditComponent: TSCSComponent;
|
||
FNBComponent: TSCSComponent;
|
||
FNBComponentTypeGUID: String;
|
||
FNBComponentType: TNBComponentType;
|
||
FPointComponentFrom: TSCSComponent;
|
||
FPointComponentTo: TSCSComponent;
|
||
|
||
FFromResources: Boolean;
|
||
|
||
FSavedNBlvTemplatesSelectItem: TLVSelectItemEvent;
|
||
FSavedNBpcObjectsChange: TNotifyEvent;
|
||
FSavedNBtvComponGroupsChange: TFTVChangedEvent;
|
||
|
||
FNormBase: TForm;
|
||
|
||
procedure ActivateFNormBase(ACompTypesToFilter: TStringList; const ACompTypeSysName: string);
|
||
procedure HideCableCanalPanels(AHide: Boolean);
|
||
procedure LoadCanalsToBeReplace;
|
||
procedure PrepareBeforeShow;
|
||
procedure SetControls;
|
||
|
||
// Event Handlers
|
||
procedure Tree_CatalogChange(Sender: TObject; Node: TTreeNode);
|
||
procedure Tree_CatalogDblClick(Sender: TObject);
|
||
procedure NBlvTemplatesSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||
procedure NBlvTemplatesDblClick(Sender: TObject);
|
||
procedure NBpcObjectsChange(Sender: TObject);
|
||
procedure NBtvComponGroupsChange(Sender: TObject; Node: TFlyNode);
|
||
|
||
procedure AfterChangeNBCompon;
|
||
procedure AfterDblClickNBCompon;
|
||
procedure OnApplyForAllChanged;
|
||
public
|
||
|
||
constructor Create(AOwner: TComponent; AForm: TForm);
|
||
destructor Destroy; override;
|
||
|
||
procedure ConnectComplWith(ACurrNode: TTreeNode);
|
||
function DefineReplaceComponent(ACanReplace: TSCSComponents; var ACanReplaceIndex: Integer; AFromResources: Boolean): TSCSComponent;
|
||
function DefineReplaceCableCanal(ACableCanals: TSCSComponents; var AReplaceCableCanals: TSCSComponents): TSCSComponent;
|
||
function DefineCableCanalConnector(ACableCanal: TSCSComponent; AIDCurrConnector: Integer): TSCSComponent;
|
||
//Tolik 15/11/2021 --
|
||
function DefineTubeConnector(ATube: TSCSComponent; AIDCurrConnector: Integer): TSCSComponent;
|
||
//
|
||
function DefineCableForJoinToPoints(APointComponFrom, APointComponTo: TSCSComponent; ADefCableGUID: String = ''): TSCSComponent;
|
||
function GetComponentFromNB(AIDCurrComponent: Integer; AByGUIDComponentType: String): TSCSComponent;
|
||
|
||
//procedure ClearListView(AListView: TListView);
|
||
procedure FillListViewBySCSComponents(AListView: TListView; ASCSComponents: TSCSComponents);
|
||
function GetInterfListThatCanConnectCompons(ACompon1, ACompon2: TSCSComponent): TList;
|
||
//function GetComponsThatCanConnectCompons(ACompon1, ACompon2: TSCSComponent): TList;
|
||
end;
|
||
|
||
//var
|
||
// F_ConnectComplWith: TF_ConnectComplWith;
|
||
|
||
implementation
|
||
Uses U_Main, Unit_DM_SCS;
|
||
{$R *.dfm}
|
||
|
||
{ TF_ConnectComplWith }
|
||
|
||
constructor TF_ConnectComplWith.Create(AOwner: TComponent; AForm: TForm);
|
||
begin
|
||
GForm := AForm;
|
||
Inherited Create(AOwner);
|
||
|
||
lbNBNodeInfo.Caption := '';
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.FormCreate(Sender: TObject);
|
||
begin
|
||
FFromResources := false;
|
||
end;
|
||
|
||
|
||
destructor TF_ConnectComplWith.Destroy;
|
||
begin
|
||
|
||
inherited;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.FormHide(Sender: TObject);
|
||
begin
|
||
try
|
||
ListView_ConnectWith.Clear; //ClearListView(ListView_ConnectWith);
|
||
|
||
//FComponent.Free;
|
||
//FConnectCompon.Free;
|
||
FNormBase.Free;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if Assigned(FCurrNode) then
|
||
TF_Main(GForm).Tree_Catalog.Selected := FCurrNode;
|
||
FCurrNode := nil;
|
||
//HideCableCanalPanels;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.FormHide: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TF_ConnectComplWith.ListView_ConnectWithChange(Sender: TObject;
|
||
Item: TListItem; Change: TItemChange);
|
||
var Node: TTreeNode;
|
||
FullnessPercent: Double;
|
||
ComponentWithMaxFullness: TSCSComponent;
|
||
CurrVolume: Double;
|
||
i: Integer;
|
||
begin (*
|
||
try
|
||
//FConnectCompon.LoadComponentByID(Integer(Item.Data^));
|
||
//FConnectCompon.LoadAllSCSComplects(cdNone);
|
||
Label_ComponFullness.Caption := '';
|
||
Memo_ReplaceInfo.Lines.Clear;
|
||
if Assigned(Item) then
|
||
begin
|
||
FConnectCompon := nil;
|
||
FConnectCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(Integer(Item.Data^));
|
||
case FFormMode of
|
||
ccwDefineReplaceCableCanal:
|
||
if Assigned(FConnectCompon) then
|
||
begin
|
||
FullnessPercent := FConnectCompon.GetFullnessPercentCableCanal;
|
||
CurrVolume := FConnectCompon.GetVolume(gtFemale);
|
||
ComponentWithMaxFullness := FConnectCompon;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to FCableCanalsToReplace.Count - 1 do
|
||
if Assigned(FCableCanalsToReplace[i]) then
|
||
if FCableCanalsToReplace[i].ID <> FConnectCompon.ID then
|
||
if FCableCanalsToReplace[i].GetFullnessPercentCableCanal > FullnessPercent then
|
||
if Abs(FCableCanalsToReplace[i].GetVolume(gtFemale) - CurrVolume) < 0.01 then
|
||
begin
|
||
FullnessPercent := FCableCanalsToReplace[i].GetFullnessPercentCableCanal;
|
||
ComponentWithMaxFullness := FCableCanalsToReplace[i];
|
||
end;
|
||
|
||
|
||
if (FullnessPercent <> -1) and (SpinEdit_FullMorePercent.Value <> 0) then
|
||
begin
|
||
FMinNBCableCanalVolume := -1;
|
||
FMinNBCableCanalVolume := RoundX(ComponentWithMaxFullness.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value), 3);
|
||
Label_ComponFullness.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+FConnectCompon.Name+'" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(FConnectCompon.GetVolume(gtFemale))+' <20><>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatTostr(FConnectCompon.GetFullnessPercentCableCanal)+' %';
|
||
|
||
Memo_ReplaceInfo.Lines.Text := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+SpinEdit_FullMorePercent.Text+' %, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(CurrVolume)+' <20><>2.'+#10+#13+
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatToStr(FMinNBCableCanalVolume)+' <20><>2';
|
||
|
||
{
|
||
FMinNBCableCanalVolume := RoundX(ComponentWithMaxFullness.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value), 3);
|
||
Label_ComponFullness.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+FConnectCompon.Name+'" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(FConnectCompon.GetVolume(gtFemale))+' <20><>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatTostr(FConnectCompon.GetFullnessPercentCableCanal)+' %';
|
||
|
||
Label_ReplaceInfo.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+SpinEdit_FullMorePercent.Text+' %, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(CurrVolume)+' <20><>2.'+#10+#13+
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatToStr(FMinNBCableCanalVolume)+' <20><>2';
|
||
}
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
if FCanChangeTreeInMainForm then
|
||
if Assigned(FConnectCompon) then
|
||
begin
|
||
Node := nil;
|
||
Node := TF_Main(GForm).FindComponOrDirInTree(FConnectCompon.ID, true);
|
||
if Assigned(Node) then
|
||
TF_Main(GForm).Tree_Catalog.Selected := Node;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.ListView_ConnectWithChange: '+E.Message);
|
||
end; *)
|
||
end;
|
||
|
||
|
||
procedure TF_ConnectComplWith.ListView_ConnectWithSelectItem(
|
||
Sender: TObject; Item: TListItem; Selected: Boolean);
|
||
var Node: TTreeNode;
|
||
FullnessPercent: Double;
|
||
ComponentWithMaxFullness: TSCSComponent;
|
||
CurrVolume: Double;
|
||
i: Integer;
|
||
begin
|
||
try
|
||
//FConnectCompon.LoadComponentByID(Integer(Item.Data^));
|
||
//FConnectCompon.LoadAllSCSComplects(cdNone);
|
||
Label_ComponFullness.Caption := '';
|
||
Memo_ReplaceInfo.Lines.Clear;
|
||
if Assigned(Item) then
|
||
begin
|
||
FConnectCompon := nil;
|
||
FConnectCompon := Item.Data; //TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(Integer(Item.Data^));
|
||
case FFormMode of
|
||
ccwDefineReplaceCableCanal:
|
||
if Assigned(FConnectCompon) then
|
||
begin
|
||
FullnessPercent := FConnectCompon.GetFullnessPercentCableCanal;
|
||
CurrVolume := FConnectCompon.GetVolume(gtFemale);
|
||
|
||
FMinNBCableCanalVolume := Round3(FConnectCompon.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value));
|
||
Label_ComponFullness.Caption := cConnectComplWith_Msg1_1+' "'+FConnectCompon.Name+'" '+cConnectComplWith_Msg1_2+' '+
|
||
FloatTostr(RoundCP(FloatInUOM(FConnectCompon.GetVolume(gtFemale), umSM, TF_Main(GForm).FUOMMin, 2)))+' '+
|
||
GetNameUOM2(TF_Main(GForm).FUOMMin)+
|
||
' '+cConnectComplWith_Msg1_4+' '+FloatTostr(RoundCP(FConnectCompon.GetFullnessPercentCableCanal))+' %';
|
||
|
||
Memo_ReplaceInfo.Lines.Text := cConnectComplWith_Msg2_1+' "'+FConnectCompon.Name+'", '+cConnectComplWith_Msg2_2+' '+SpinEdit_FullMorePercent.Text+' %, '+
|
||
cConnectComplWith_Msg2_3+' '+FloatTostr(RoundCP(FloatInUOM(CurrVolume, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+'.'+#10+#13+
|
||
cConnectComplWith_Msg2_5+' '+FloatToStr(RoundCP(FloatInUOM(FMinNBCableCanalVolume, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin);
|
||
|
||
(*
|
||
FullnessPercent := FConnectCompon.GetFullnessPercentCableCanal;
|
||
CurrVolume := FConnectCompon.GetVolume(gtFemale);
|
||
ComponentWithMaxFullness := FConnectCompon;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to FCableCanalsToCanReplace.Count - 1 do
|
||
if Assigned(FCableCanalsToCanReplace[i]) then
|
||
if FCableCanalsToCanReplace[i].ID <> FConnectCompon.ID then
|
||
if FCableCanalsToCanReplace[i].GetFullnessPercentCableCanal > FullnessPercent then
|
||
if Abs(FCableCanalsToCanReplace[i].GetVolume(gtFemale) - CurrVolume) < 0.01 then
|
||
begin
|
||
FullnessPercent := FCableCanalsToCanReplace[i].GetFullnessPercentCableCanal;
|
||
ComponentWithMaxFullness := FCableCanalsToCanReplace[i];
|
||
end;
|
||
|
||
|
||
if (FullnessPercent <> -1) and (SpinEdit_FullMorePercent.Value <> 0) then
|
||
begin
|
||
FMinNBCableCanalVolume := -1;
|
||
FMinNBCableCanalVolume := RoundX(ComponentWithMaxFullness.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value), 3);
|
||
Label_ComponFullness.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+FConnectCompon.Name+'" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(FConnectCompon.GetVolume(gtFemale))+' <20><>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatTostr(FConnectCompon.GetFullnessPercentCableCanal)+' %';
|
||
|
||
Memo_ReplaceInfo.Lines.Text := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+SpinEdit_FullMorePercent.Text+' %, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(CurrVolume)+' <20><>2.'+#10+#13+
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatToStr(FMinNBCableCanalVolume)+' <20><>2';
|
||
|
||
{
|
||
FMinNBCableCanalVolume := RoundX(ComponentWithMaxFullness.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value), 3);
|
||
Label_ComponFullness.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+FConnectCompon.Name+'" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(FConnectCompon.GetVolume(gtFemale))+' <20><>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatTostr(FConnectCompon.GetFullnessPercentCableCanal)+' %';
|
||
|
||
Label_ReplaceInfo.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+SpinEdit_FullMorePercent.Text+' %, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatTostr(CurrVolume)+' <20><>2.'+#10+#13+
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatToStr(FMinNBCableCanalVolume)+' <20><>2';
|
||
}
|
||
end; *)
|
||
end;
|
||
end;
|
||
|
||
if FCanChangeTreeInMainForm then
|
||
if Assigned(FConnectCompon) then
|
||
begin
|
||
Node := nil;
|
||
Node := TF_Main(GForm).FindComponOrDirInTree(FConnectCompon.ID, true);
|
||
if Assigned(Node) then
|
||
TF_Main(GForm).Tree_Catalog.Selected := Node;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.ListView_ConnectWithSelectItem: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TF_ConnectComplWith.ListView_ConnectByChange(Sender: TObject;
|
||
Item: TListItem; Change: TItemChange);
|
||
begin
|
||
//
|
||
end;
|
||
|
||
{
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ListView #####
|
||
procedure TF_ConnectComplWith.ClearListView(AListView: TListView);
|
||
var i: Integer;
|
||
ListItem: TListItem;
|
||
begin
|
||
try
|
||
for i := 0 to AListView.Items.Count - 1 do
|
||
begin
|
||
ListItem := AListView.Items[i];
|
||
if ListItem.Data <> nil then
|
||
FreeMem(ListItem.Data);
|
||
end;
|
||
AListView.Items.Clear;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.ClearListView: '+E.Message);
|
||
end;
|
||
end; }
|
||
|
||
|
||
procedure TF_ConnectComplWith.FillListViewBySCSComponents(AListView: TListView; ASCSComponents: TSCSComponents);
|
||
var i: Integer;
|
||
//ptrID: ^Integer;
|
||
ListItem: TListItem;
|
||
OnChangeEvent: TLVChangeEvent;
|
||
begin
|
||
if Not Assigned(ASCSComponents) then
|
||
Exit; //// EXIT ////
|
||
if Not Assigned(AListView) then
|
||
Exit; //// EXIT ////
|
||
|
||
AListView.Items.BeginUpdate;
|
||
OnChangeEvent := AListView.OnChange;
|
||
AListView.OnChange := nil;
|
||
try
|
||
for i := 0 to ASCSComponents.Count - 1 do
|
||
if Assigned(ASCSComponents[i]) then
|
||
begin
|
||
ListItem := AListView.Items.Add;
|
||
//GetMem(ptrID, SizeOf(Integer));
|
||
//ptrID^ := ASCSComponents[i].ID;
|
||
ListItem.Data := ASCSComponents[i]; //ptrID;
|
||
ListItem.Caption := ASCSComponents[i].GetNameForVisible(false);
|
||
case ASCSComponents[i].IsLine of
|
||
biTrue:
|
||
ListItem.ImageIndex := tciiComponLine;
|
||
biFalse:
|
||
ListItem.ImageIndex := tciiComponCon;
|
||
end;
|
||
end;
|
||
SetControls;
|
||
finally
|
||
AListView.OnChange := OnChangeEvent;
|
||
if AListView.Items.Count > 0 then
|
||
AListView.Selected := AListView.Items[0];
|
||
OnChangeEvent(AListView, AListView.Selected, ctText);
|
||
AListView.Items.EndUpdate;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.HideCableCanalPanels(AHide: Boolean);
|
||
begin
|
||
splReplaceCanalsInfo.Enabled := Not AHide;
|
||
splReplaceCanalsInfo.Visible := Not AHide;
|
||
pnReplaceCanalsInfo.Visible := Not AHide;
|
||
|
||
//Panel_FullMorePercent.Visible := Not AHide;
|
||
//Panel_ComponFullnessPercent.Visible := Not AHide;
|
||
pnComponents.Visible := Not AHide;
|
||
|
||
Panel_FullMorePercent.Visible := Not AHide;
|
||
Panel_ComponFullnessPercent.Visible := Not AHide;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.LoadCanalsToBeReplace;
|
||
var
|
||
i, j, k: Integer;
|
||
CanalToReplace: TSCSComponent;
|
||
NBComponent: TSCSComponent;
|
||
MinNBCableCanalVolume: Double;
|
||
|
||
CurrCanal: TSCSComponent;
|
||
LookedCanals: TSCSComponents;
|
||
|
||
ComponNode: TTreeNode;
|
||
GrpNode: TTreeNode;
|
||
begin
|
||
NBComponent := nil;
|
||
lvComponentsToBeReplace.Items.Clear;
|
||
FCableCanalsToBeReplace.Clear;
|
||
tvComponentsToBeReplace.Items.Clear;
|
||
|
||
if Assigned(FNormBase) and (TF_Main(FNormBase).GSCSBase.SCSComponent.ID > 0) then
|
||
begin
|
||
NBComponent := TF_Main(FNormBase).GSCSBase.SCSComponent;
|
||
if NBComponent.Interfaces.Count = 0 then
|
||
NBComponent.LoadInterfaces(-1, false);
|
||
if NBComponent.ChildComplects.Count = 0 then
|
||
NBComponent.LoadChildComplects(true, true, true);
|
||
|
||
for i := 0 to FCableCanalsToCanReplace.Count - 1 do
|
||
begin
|
||
CanalToReplace := FCableCanalsToCanReplace[i];
|
||
MinNBCableCanalVolume := Round3(CanalToReplace.GetCablesVolume * (100/SpinEdit_FullMorePercent.Value));
|
||
if (NBComponent.GetVolume(gtFemale) - NBComponent.GetCablesVolume) >= MinNBCableCanalVolume then
|
||
FCableCanalsToBeReplace.Add(CanalToReplace);
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CheckTreeView
|
||
LookedCanals := TSCSComponents.Create(false);
|
||
try
|
||
for i := 0 to FCableCanalsToCanReplace.Count - 1 do
|
||
begin
|
||
CurrCanal := FCableCanalsToCanReplace[i];
|
||
for j := 0 to FCableCanalsToCanReplace.Count - 1 do
|
||
begin
|
||
CanalToReplace := FCableCanalsToCanReplace[j];
|
||
|
||
if CanalToReplace.GuidNB = CurrCanal.GuidNB then
|
||
if LookedCanals.IndexOf(CanalToReplace) = -1 then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
GrpNode := nil;
|
||
for k := 0 to tvComponentsToBeReplace.Items.Count - 1 do
|
||
begin
|
||
ComponNode := tvComponentsToBeReplace.Items[k];
|
||
if ComponNode.Data <> nil then
|
||
if TSCSComponent(ComponNode.Data).GuidNB = CanalToReplace.GuidNB then
|
||
begin
|
||
GrpNode := ComponNode.Parent;
|
||
Break; ///// BREAK /////
|
||
end;
|
||
end;
|
||
if GrpNode = nil then
|
||
begin
|
||
GrpNode := tvComponentsToBeReplace.Items.Add(nil, cConnectComplWith_Msg3+' "'+CanalToReplace.Name+'"');
|
||
GrpNode.Data := nil;
|
||
GrpNode.ImageIndex := tciiSCSLineGroup;
|
||
GrpNode.SelectedIndex := GrpNode.ImageIndex;
|
||
GrpNode.StateIndex := Ord(csChecked);
|
||
end;
|
||
if GrpNode <> nil then
|
||
begin
|
||
ComponNode := tvComponentsToBeReplace.Items.AddChild(GrpNode, CanalToReplace.GetNameForVisible(false));
|
||
//ComponNode.c
|
||
ComponNode.Data := CanalToReplace;
|
||
ComponNode.ImageIndex := tciiComponLine;
|
||
ComponNode.SelectedIndex := ComponNode.ImageIndex;
|
||
ComponNode.StateIndex := Ord(csChecked);
|
||
|
||
if Not GrpNode.Expanded then
|
||
GrpNode.Expanded := true;
|
||
end;
|
||
LookedCanals.Add(CanalToReplace);
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
LookedCanals.Free;
|
||
end;
|
||
|
||
|
||
FillListViewBySCSComponents(lvComponentsToBeReplace, FCableCanalsToBeReplace);
|
||
for i := 0 to lvComponentsToBeReplace.Items.Count - 1 do
|
||
lvComponentsToBeReplace.Items[i].Checked := true;
|
||
end;
|
||
SetControls;
|
||
end;
|
||
|
||
function TF_ConnectComplWith.GetInterfListThatCanConnectCompons(ACompon1, ACompon2: TSCSComponent): TList;
|
||
var ResList: TList;
|
||
i, j: Integer;
|
||
InterfList1, InterfList2: TSCSInterfaces;
|
||
Interf1, Interf2: TSCSInterface;
|
||
ptrID: ^Integer;
|
||
|
||
function SelectInterfacesFromComponent(AComponent: TSCSComponent): TSCSInterfaces;
|
||
var ResList: TSCSInterfaces;
|
||
ChildCompon : TSCSComponent;
|
||
i: integer;
|
||
begin
|
||
Result := nil;
|
||
ResList := TSCSInterfaces.Create(false);
|
||
ResList.Assign(AComponent.Interfaces, laOr);
|
||
for i := 0 to AComponent.ChildComplects.Count - 1 do
|
||
begin
|
||
ChildCompon := AComponent.ChildComplects[i];
|
||
ResList.Assign(ChildCompon.Interfaces, laOr);
|
||
end;
|
||
Result := ResList;
|
||
end;
|
||
|
||
|
||
|
||
begin
|
||
Result := nil;
|
||
try
|
||
ResList := TList.Create;
|
||
InterfList1 := SelectInterfacesFromComponent(ACompon1);
|
||
InterfList2 := SelectInterfacesFromComponent(ACompon2);
|
||
try
|
||
for i := 0 to InterfList1.Count - 1 do
|
||
begin
|
||
Interf1 := InterfList1[i];
|
||
if Interf1.TypeI = itFunctional then
|
||
if CheckNoIDInList(Interf1.ID_Interface, ResList) then
|
||
for j := 0 to InterfList1.Count - 1 do
|
||
begin
|
||
Interf2 := InterfList2[j];
|
||
if Interf1.TypeI = itFunctional then
|
||
if TF_Main(GForm).CheckInterf(Interf1, Interf2, cntUnion, nil, nil) then
|
||
begin
|
||
New(ptrId);
|
||
ptrID^ := Interf1.ID_Interface;
|
||
ResList.Add(ptrID);
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
FreeAndNil(InterfList1);
|
||
FreeAndNil(InterfList2);
|
||
end;
|
||
Result := ResList;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.GetInterfListThatCanConnectCompons: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
|
||
{
|
||
function TF_ConnectComplWith.GetComponsThatCanConnectCompons(ACompon1, ACompon2: TSCSComponent): TList;
|
||
var CanConnectInterfaces: TList;
|
||
NBComponents: TList;
|
||
NBCompon: TSCSComponent;
|
||
i: Integer;
|
||
ResList: TList;
|
||
begin
|
||
Result := nil;
|
||
try
|
||
ResList := TList.Create;
|
||
|
||
NBComponents := TList.Create;
|
||
CanConnectInterfaces := GetInterfListThatCanConnectCompons(ACompon1, ACompon2);
|
||
try
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).FNormBase.DM do
|
||
begin
|
||
ChangeSQLQuery(scsQSelect, ' select component.id, name from component, interface_relation '+
|
||
' where (isLine = '''+IntToStr(biFalse)+''') and (component.id = id_component) and '+
|
||
' (id_interface = :id_interface) ');
|
||
for i := 0 to CanConnectInterfaces.Count - 1 do
|
||
begin
|
||
scsQSelect.Close;
|
||
scsQSelect.SetParamAsInteger('id_Interface', Integer(CanConnectInterfaces[i]^));
|
||
scsQSelect.ExecQuery;
|
||
while Not scsQSelect.Eof do
|
||
begin
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.LoadComponentByID(scsQSelect.GetFNAsInteger('id'), false);
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
|
||
end;
|
||
scsQSelect.Close;
|
||
end;
|
||
|
||
end;
|
||
|
||
finally
|
||
FreeList(CanConnectInterfaces);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.GetComponsThatCanConnectCompons: '+E.Message);
|
||
end;
|
||
end;
|
||
}
|
||
|
||
procedure TF_ConnectComplWith.ActivateFNormBase(ACompTypesToFilter: TStringList; const ACompTypeSysName: string);
|
||
begin
|
||
pnNewComponIndex.Visible := FFormMode = ccwDefineCableForJoinToPoints;
|
||
if pnNewComponIndex.Visible then
|
||
neNewComponIndex.Value := 0;
|
||
|
||
GGDBMode := bkNormBase;
|
||
FNormBase := TF_Main.Create(Self, bkNormBase, fmConnections, GroupBox_ConnectBy);
|
||
if TF_Main(FNormBase).gbTemplateGroups.GroupCount = 0 then
|
||
TF_Main(FNormBase).LoadTemplateGroups;
|
||
|
||
TF_Main(FNormBase).FNormBase := F_NormBase;
|
||
TF_Main(FNormBase).FProjectMan := F_ProjMan;
|
||
|
||
TF_Main(FNormBase).Visible := false;
|
||
TF_Main(FNormBase).ToolBar_Tree.Visible := false;
|
||
|
||
TF_Main(FNormBase).GSCSBase.NBSpravochnik.Assign(F_NormBase.GSCSBase.NBSpravochnik);
|
||
TF_Main(FNormBase).HideTemplateItems(ACompTypesToFilter, true);
|
||
TF_Main(FNormBase).HideTemplateEditingControls;
|
||
|
||
TF_Main(FNormBase).Panel_Addition.Visible := false;
|
||
TF_Main(FNormBase).Panel_OKCancel.Visible := false;
|
||
//TF_Main(FNormBase).Parent := GroupBox_ConnectBy;
|
||
TF_Main(FNormBase).Align := alClient;
|
||
TF_Main(FNormBase).EnableDisableEdit(false);
|
||
TF_Main(FNormBase).Tree_Catalog.PopupMenu := nil;
|
||
TF_Main(FNormBase).Tree_Catalog.OnChange := Tree_CatalogChange;
|
||
TF_Main(FNormBase).Tree_Catalog.OnDblClick := Tree_CatalogDblClick;
|
||
|
||
FSavedNBlvTemplatesSelectItem := TF_Main(FNormBase).lvTemplatesSelectItem; //TF_Main(FNormBase).lvTemplates.OnSelectItem;
|
||
FSavedNBpcObjectsChange := TF_Main(FNormBase).pcObjects.OnChange;
|
||
FSavedNBtvComponGroupsChange := TF_Main(FNormBase).tvComponGroups.OnChange;
|
||
|
||
TF_Main(FNormBase).lvTemplates.OnSelectItem := NBlvTemplatesSelectItem;
|
||
TF_Main(FNormBase).lvTemplates.OnDblClick := NBlvTemplatesDblClick;
|
||
|
||
TF_Main(FNormBase).SetEventsToLVTemplate(NBlvTemplatesSelectItem, NBlvTemplatesDblClick);
|
||
TF_Main(FNormBase).pcObjects.OnChange := NBpcObjectsChange;
|
||
TF_Main(FNormBase).tvComponGroups.OnChange := NBtvComponGroupsChange;
|
||
|
||
FreeAndNil(TF_Main(FNormBase).PopupMenu_Catalog);
|
||
|
||
//26.05.2009 TF_Main(FNormBase).GSCSBase.NBSpravochnik.Assign(F_NormBase.GSCSBase.NBSpravochnik);
|
||
|
||
if ACompTypesToFilter <> nil then
|
||
TF_Main(FNormBase).SetFilterBlockForCompType(ACompTypesToFilter);
|
||
|
||
TF_Main(FNormBase).pcObjects.MultiLine := true;
|
||
if ACompTypeSysName <> '' then
|
||
begin
|
||
TF_Main(FNormBase).InitComponGroup(ACompTypeSysName);
|
||
if GetGUIDFromComboBoxRz(TF_Main(FNormBase).cbGroupCompType) <> ACompTypeSysName then
|
||
TF_Main(FNormBase).tsComponGroups.TabVisible := false;
|
||
end
|
||
else
|
||
// Tolik 24/01/2020
|
||
//TF_Main(FNormBase).tsComponGroups.TabVisible := false;
|
||
begin
|
||
TF_Main(FNormBase).tsComponGroups.TabVisible := false;
|
||
TF_Main(FNormBase).pcObjects.ActivePageIndex := 1;
|
||
end;
|
||
//
|
||
TF_Main(FNormBase).Visible := true;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.PrepareBeforeShow;
|
||
begin
|
||
FFromResources := false;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.SetControls;
|
||
var
|
||
ShowConnectWith: Boolean;
|
||
CablesToReplaceCount: Integer;
|
||
i: Integer;
|
||
begin
|
||
if FFormMode = ccwDefineReplaceCableCanal then
|
||
begin
|
||
HideCableCanalPanels(false);
|
||
|
||
CablesToReplaceCount := 0;
|
||
//for i := 0 to lvComponentsToBeReplace.Items.Count - 1 do
|
||
// if lvComponentsToBeReplace.Items[i].Checked then
|
||
// Inc(CablesToReplaceCount);
|
||
for i := 0 to tvComponentsToBeReplace.Items.Count - 1 do
|
||
if tvComponentsToBeReplace.ItemState[i] = csChecked then
|
||
Inc(CablesToReplaceCount);
|
||
|
||
//if ListView_ConnectWith.Items.Count > 0 then
|
||
if CablesToReplaceCount > 0 then
|
||
Button_OK.Enabled := true
|
||
else
|
||
Button_OK.Enabled := false;
|
||
end
|
||
else
|
||
begin
|
||
HideCableCanalPanels(true);
|
||
Button_OK.Enabled := true;
|
||
|
||
ShowConnectWith := false;
|
||
if FFormMode = ccwConnectComplWith then
|
||
ShowConnectWith := true;
|
||
pnComponents.Visible := ShowConnectWith;
|
||
end;
|
||
|
||
ShowConnectWith := true;
|
||
if FFormMode = ccwDefineCableCanalConnector then
|
||
ShowConnectWith := false;
|
||
|
||
GroupBox_ConnectWith.Visible := ShowConnectWith;
|
||
Splitter.Visible := ShowConnectWith;
|
||
|
||
cbApplyForCurrList.Checked := false;
|
||
cbApplyForCurrProj.Checked := false;
|
||
//17.08.2012 cbApplyForCurrListClick(cbApplyForCurrList);
|
||
cbApplyForOnlySelected.Checked := false;
|
||
if GCadForm <> nil then
|
||
if GCadForm.PCad.SelectedCount > 1 then
|
||
cbApplyForOnlySelected.Checked := true;
|
||
OnApplyForAllChanged; //17.08.2012
|
||
pnApplyForCurrList.Visible := false;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.Tree_CatalogChange(Sender: TObject; Node: TTreeNode);
|
||
//var
|
||
// NBCompon: TSCSComponent;
|
||
// NBCanalVolume: Double;
|
||
begin
|
||
//TF_Main(FNormBase).Tree_CatalogChange(Sender, Node);
|
||
//Sleep(TF_Main(FNormBase).Timer_TreeCatalogChange.Interval+1);
|
||
//Application.ProcessMessages;
|
||
TF_Main(FNormBase).Timer_TreeCatalogChangeTimer(TF_Main(FNormBase).Timer_TreeCatalogChange);
|
||
|
||
AfterChangeNBCompon; //25.05.2009
|
||
|
||
{//25.05.2009
|
||
lbNBNodeInfo.Caption := '';
|
||
case FFormMode of
|
||
ccwDefineReplaceCableCanal:
|
||
begin
|
||
NBCompon := TF_Main(FNormBase).GSCSBase.SCSComponent;
|
||
if NBCompon.ID > 0 then
|
||
begin
|
||
if NBCompon.ComponentType.SysName <> ctsnCableChannel then
|
||
lbNBNodeInfo.Caption := '"'+NBCompon.Name+'" '+cConnectComplWith_Msg4_1
|
||
else
|
||
begin
|
||
if NBCompon.Interfaces.Count = 0 then
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
NBCanalVolume := NBCompon.GetVolume(gtFemale);
|
||
lbNBNodeInfo.Caption := cConnectComplWith_Msg4_2+' "'+NBCompon.Name+'" '+FloatToStr(RoundCP(FloatInUOM(NBCanalVolume, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+'.';
|
||
end;
|
||
end;
|
||
LoadCanalsToBeReplace;
|
||
end;
|
||
ccwGetComponentFromNB:
|
||
if FNBComponentTypeGUID <> '' then
|
||
lbNBNodeInfo.Caption := cConnectComplWith_Msg5+': '+TF_Main(FNormBase).GSCSBase.SCSComponent.ComponentType.Name;
|
||
end;}
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.Tree_CatalogDblClick(Sender: TObject);
|
||
begin
|
||
AfterDblClickNBCompon; //25.05.2009
|
||
{//25.05.2009
|
||
if (FFormMode = ccwDefineCableCanalConnector) or
|
||
(FFormMode = ccwDefineCableForJoinToPoints) or
|
||
(FFormMode = ccwGetComponentFromNB) then
|
||
Button_OK.Click;
|
||
}
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.NBlvTemplatesSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||
begin
|
||
if Assigned(FSavedNBlvTemplatesSelectItem) then
|
||
FSavedNBlvTemplatesSelectItem(Sender, Item, Selected);
|
||
|
||
AfterChangeNBCompon;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.NBlvTemplatesDblClick(Sender: TObject);
|
||
begin
|
||
AfterDblClickNBCompon;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.NBpcObjectsChange(Sender: TObject);
|
||
begin
|
||
if Assigned(FSavedNBpcObjectsChange) then
|
||
begin
|
||
FSavedNBpcObjectsChange(TF_Main(FNormBase).pcObjects);
|
||
if TF_Main(FNormBase).Timer_TreeCatalogChange.Enabled then
|
||
TF_Main(FNormBase).Timer_TreeCatalogChangeTimer(TF_Main(FNormBase).Timer_TreeCatalogChange);
|
||
end;
|
||
|
||
AfterChangeNBCompon;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.NBtvComponGroupsChange(Sender: TObject; Node: TFlyNode);
|
||
begin
|
||
if Assigned(FSavedNBtvComponGroupsChange) then
|
||
FSavedNBtvComponGroupsChange(Sender, Node);
|
||
|
||
AfterChangeNBCompon;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.AfterChangeNBCompon;
|
||
var
|
||
NBCompon: TSCSComponent;
|
||
NBCanalVolume: Double;
|
||
SprCompType: TNBComponentType;
|
||
begin
|
||
lbNBNodeInfo.Caption := '';
|
||
NBCompon := TF_Main(FNormBase).GSCSBase.SCSComponent;
|
||
case FFormMode of
|
||
ccwDefineReplaceCableCanal:
|
||
begin
|
||
if NBCompon.ID > 0 then
|
||
begin
|
||
if NBCompon.ComponentType.SysName <> ctsnCableChannel then
|
||
lbNBNodeInfo.Caption := '"'+NBCompon.Name+'" '+cConnectComplWith_Msg4_1
|
||
else
|
||
begin
|
||
if NBCompon.Interfaces.Count = 0 then
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
NBCanalVolume := NBCompon.GetVolume(gtFemale);
|
||
lbNBNodeInfo.Caption := cConnectComplWith_Msg4_2+' "'+NBCompon.Name+'" '+FloatToStr(RoundCP(FloatInUOM(NBCanalVolume, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+'.';
|
||
end;
|
||
end;
|
||
LoadCanalsToBeReplace;
|
||
end;
|
||
ccwGetComponentFromNB:
|
||
if FNBComponentTypeGUID <> '' then
|
||
lbNBNodeInfo.Caption := cConnectComplWith_Msg5+': '+TF_Main(FNormBase).GSCSBase.SCSComponent.ComponentType.Name;
|
||
ccwDefineCableForJoinToPoints:
|
||
begin
|
||
if pnNewComponIndex.Visible then
|
||
begin
|
||
SprCompType := F_ProjMan.GSCSBase.CurrProject.Spravochnik.GetComponentTypeWithAssign(NBCompon.GUIDComponentType, F_NormBase.GSCSBase.NBSpravochnik);
|
||
if SprCompType <> nil then
|
||
neNewComponIndex.IntValue := SprCompType.ComponentType.ComponentIndex + 1
|
||
else
|
||
neNewComponIndex.IntValue := 0;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.AfterDblClickNBCompon;
|
||
begin
|
||
if (FFormMode = ccwDefineCableCanalConnector) or
|
||
(FFormMode = ccwDefineCableForJoinToPoints) or
|
||
(FFormMode = ccwGetComponentFromNB) then
|
||
Button_OK.Click;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.ConnectComplWith(ACurrNode: TTreeNode);
|
||
var CurrNode: TTreeNode;
|
||
ListItem: TListItem;
|
||
NodeDat: PObjectData;
|
||
//ptrID: ^Integer;
|
||
SCSComplect: TSCSComponent;
|
||
begin
|
||
FCurrNode := ACurrNode;
|
||
FFormMode := ccwConnectComplWith;
|
||
PrepareBeforeShow;
|
||
SetControls;
|
||
try
|
||
Caption := cConnectComplWith_Msg6;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
CurrNode := ACurrNode.Parent;
|
||
CurrNode := CurrNode.getFirstChild;
|
||
|
||
GroupBox_ConnectWith.Caption := cConnectComplWith_Msg7_1;
|
||
GroupBox_ConnectBy.Caption := cConnectComplWith_Msg7_2;
|
||
|
||
ListView_ConnectWith.OnChange := nil;
|
||
try
|
||
while CurrNode <> nil do
|
||
begin
|
||
if CurrNode <> FCurrNode then
|
||
begin
|
||
NodeDat := CurrNode.Data;
|
||
//New(ptrID);
|
||
//ptrID^ := NodeDat.ObjectID;
|
||
|
||
SCSComplect := nil;
|
||
SCSComplect := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSComplect) then
|
||
begin
|
||
ListItem := ListView_ConnectWith.Items.Add;
|
||
ListItem.Caption := CurrNode.Text;
|
||
ListItem.ImageIndex := CurrNode.ImageIndex;
|
||
ListItem.Data := SCSComplect; //ptrID;
|
||
end;
|
||
end;
|
||
CurrNode := CurrNode.GetNextSibling;
|
||
end;
|
||
finally
|
||
ListView_ConnectWith.OnChange := ListView_ConnectWithChange;
|
||
end;
|
||
FCanChangeTreeInMainForm := false;
|
||
|
||
//FComponent := TSCSComponent.Create(GForm);
|
||
//FComponent.LoadComponentByID(PObjectData(FCurrNode.Data).ObjectID, false);
|
||
//FComponent.LoadAllSCSComplects(cdNone);
|
||
FComponent := nil;
|
||
FComponent := {FCurrNode.Data; //}TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(PObjectData(FCurrNode.Data).ObjectID);
|
||
if Not Assigned(FComponent) then
|
||
Exit; //// EXIT ////
|
||
|
||
//FConnectCompon := TSCSComponent.Create(GForm);
|
||
FConnectCompon := nil;
|
||
ActivateFNormBase(nil, '');
|
||
|
||
ShowModal;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.ConnectComplWith: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
|
||
function TF_ConnectComplWith.DefineReplaceComponent(ACanReplace: TSCSComponents;
|
||
var ACanReplaceIndex: Integer; AFromResources: Boolean): TSCSComponent;
|
||
var
|
||
i: Integer;
|
||
CompTypeGUIDs: TStringList;
|
||
Compon: TSCSComponent;
|
||
begin
|
||
Result := nil;
|
||
FFormMode := ccwDefineReplaceCompon;
|
||
PrepareBeforeShow;
|
||
FFromResources := AFromResources;
|
||
SetControls; //HideCableCanalPanels;
|
||
|
||
Caption := cConnectComplWith_Msg8_1;
|
||
FConnectCompon := nil;
|
||
FReplaceComponent := nil;
|
||
FNBComponent := nil;
|
||
ACanReplaceIndex := -1;
|
||
if Assigned(ACanReplace) then
|
||
if ACanReplace.Count > 0 then
|
||
begin
|
||
GroupBox_ConnectWith.Caption := cConnectComplWith_Msg8_2;
|
||
GroupBox_ConnectBy.Caption := cConnectComplWith_Msg8_3;
|
||
|
||
FillListViewBySCSComponents(ListView_ConnectWith, ACanReplace);
|
||
|
||
CompTypeGUIDs := TStringList.Create;
|
||
CompTypeGUIDs.Sorted := true;
|
||
for i := 0 to ACanReplace.Count - 1 do
|
||
begin
|
||
Compon := ACanReplace[i];
|
||
if CompTypeGUIDs.IndexOf(Compon.GUIDComponentType) = -1 then
|
||
CompTypeGUIDs.Add(Compon.ComponentType.SysName);
|
||
end;
|
||
|
||
FCanChangeTreeInMainForm := false;
|
||
ActivateFNormBase(CompTypeGUIDs, '');
|
||
|
||
FreeAndNil(CompTypeGUIDs);
|
||
|
||
if ACanReplace.Count > 0 then
|
||
begin
|
||
pnApplyForCurrList.Visible := true;
|
||
cbApplyForComplects.Visible := ACanReplace[0].IsLine = biFalse;
|
||
cbLeaveComplectsInTarget.Visible := ACanReplace[0].IsLine = biFalse;
|
||
|
||
//17.08.2012 cbApplyForCurrList.Enabled := Not AFromResources;
|
||
cbApplyForCurrProj.Enabled := Not AFromResources;
|
||
//17.08.2012 cbApplyForOnlySelected.Enabled := Not AFromResources;
|
||
OnApplyForAllChanged;//17.08.2012
|
||
|
||
//Tolik 22/04/2021 --
|
||
{if AFromResources then
|
||
cbApplyForCurrList.Checked := true;}
|
||
|
||
if AFromResources then
|
||
begin
|
||
cbApplyForCurrList.Checked := true;
|
||
if TF_Main(GForm).F_ReportForm.isDropComponent then
|
||
TF_Main(FNormBase).SelectComponInPCObjectsByGUID(GDropComponent.GuidNB)
|
||
else
|
||
TF_Main(FNormBase).SelectComponInPCObjectsByGUID(ACanReplace[0].GuidNB);
|
||
end
|
||
else
|
||
//
|
||
|
||
//pnApplyForCurrList.Visible := false;
|
||
//if (ACanReplace[0].ComponentType.SysName <> ctsnCable) then
|
||
// pnApplyForCurrList.Visible := true; //ACanReplace[0].Parent is TSCSCatalog;
|
||
|
||
TF_Main(FNormBase).SelectComponInPCObjectsByGUID(ACanReplace[0].GuidNB); //03.06.2009 TF_Main(FNormBase).SelectComponByGUIDInTree(ACanReplace[0].GuidNB);
|
||
end;
|
||
|
||
if ShowModal = mrOK then
|
||
begin
|
||
Result := FNBComponent;
|
||
ACanReplaceIndex := ACanReplace.IndexOf(FReplaceComponent);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_ConnectComplWith.DefineReplaceCableCanal(ACableCanals: TSCSComponents; var AReplaceCableCanals: TSCSComponents): TSCSComponent;
|
||
var i: Integer;
|
||
TreeNode: TTreeNode;
|
||
begin
|
||
Result := nil;
|
||
FFormMode := ccwDefineReplaceCableCanal;
|
||
//SetControls; //HideCableCanalPanels;
|
||
PrepareBeforeShow;
|
||
|
||
FNBComponent := nil;
|
||
Caption := cConnectComplWith_Msg9_1;
|
||
GroupBox_ConnectWith.Caption := cConnectComplWith_Msg9_2; //'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
GroupBox_ConnectBy.Caption := cConnectComplWith_Msg9_3; // <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> '+FloatToStr(AWithMinPercent)+' <20><>2';
|
||
pnReplaceCanalsInfo.Visible := true;
|
||
Panel_FullMorePercent.Visible := true;
|
||
Panel_ComponFullnessPercent.Visible := true;
|
||
Label_ComponFullness.Caption := '';
|
||
Memo_ReplaceInfo.Lines.Clear;
|
||
|
||
FMinNBCableCanalVolume := -1;
|
||
//FullnessPercent := -1;
|
||
|
||
FAllCableCanals := ACableCanals;
|
||
FCableCanalsToCanReplace := TSCSComponents.Create(false);
|
||
FCableCanalsToBeReplace := TSCSComponents.Create(false);
|
||
FCanChangeTreeInMainForm := true;
|
||
try
|
||
SpinEdit_FullMorePercent.Value := TF_Main(GForm).GSCSBase.CurrProject.CurrList.Setting.CableCanalFullnessKoef;
|
||
SpinEdit_FullMorePercent.Properties.MaxValue := Round(SpinEdit_FullMorePercent.Value);
|
||
SpinEdit_FullMorePercent.Properties.MinValue := 1;
|
||
ActivateFNormBase(GCompTypeSysNameCableChannels, ctsnCableChannel);
|
||
|
||
SetControls;
|
||
if ShowModal = mrOK then
|
||
begin
|
||
Result := FNBComponent;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to tvComponentsToBeReplace.Items.Count - 1 do
|
||
begin
|
||
TreeNode := tvComponentsToBeReplace.Items[i];
|
||
if TreeNode.Data <> nil then
|
||
if tvComponentsToBeReplace.ItemState[i] = csChecked then
|
||
AReplaceCableCanals.Add(TSCSComponent(TreeNode.Data));
|
||
end;
|
||
|
||
//for i := 0 to lvComponentsToBeReplace.Items.Count - 1 do
|
||
//begin
|
||
// ListItem := lvComponentsToBeReplace.Items[i];
|
||
// if ListItem.Checked then
|
||
// AReplaceCableCanals.Add(TSCSComponent(ListItem.Data));
|
||
//end;
|
||
|
||
|
||
//for i := 0 to FCableCanalsToBeReplace.Count - 1 do
|
||
// if Assigned(FCableCanalsToBeReplace[i]) then
|
||
// //if Abs(FCableCanalsToBeReplace[i].GetVolume(gtFemale) - FReplaceComponent.GetVolume(gtFemale)) <= 0.01 then
|
||
// begin
|
||
// AReplaceCableCanals.Add(FCableCanalsToBeReplace[i]);
|
||
// end;
|
||
end;
|
||
finally
|
||
FCableCanalsToCanReplace.Free;
|
||
FCableCanalsToBeReplace.Free;
|
||
end;
|
||
end;
|
||
|
||
|
||
function TF_ConnectComplWith.DefineCableCanalConnector(ACableCanal: TSCSComponent;
|
||
AIDCurrConnector: Integer): TSCSComponent;
|
||
begin
|
||
Result := nil;
|
||
FNBComponent := nil;
|
||
FFormMode := ccwDefineCableCanalConnector;
|
||
PrepareBeforeShow;
|
||
SetControls; //HideCableCanalPanels;
|
||
|
||
Caption := cConnectComplWith_Msg10;
|
||
GroupBox_ConnectBy.Caption := '';
|
||
|
||
FReplaceComponent := nil;
|
||
FEditComponent := nil;
|
||
if Assigned(ACableCanal) then
|
||
begin
|
||
FEditComponent := ACableCanal;
|
||
ActivateFNormBase(nil, ctsnCableChannelElement);
|
||
if AIDCurrConnector <> 0 then
|
||
TF_Main(FNormBase).SelectComponByIDInTree(AIDCurrConnector);
|
||
|
||
if ShowModal = mrOk then
|
||
begin
|
||
if Assigned(FNBComponent) then
|
||
Result := FNBComponent;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// Tolik 15/11/2021 --
|
||
function TF_ConnectComplWith.DefineTubeConnector(ATube: TSCSComponent; AIDCurrConnector: Integer): TSCSComponent;
|
||
begin
|
||
Result := nil;
|
||
FNBComponent := nil;
|
||
FFormMode := ccwDefineTubeConnector; //ccwDefineCableCanalConnector;
|
||
PrepareBeforeShow;
|
||
SetControls; //HideCableCanalPanels;
|
||
|
||
Caption := cConnectComplWith_TubeMsg10;
|
||
GroupBox_ConnectBy.Caption := '';
|
||
|
||
FReplaceComponent := nil;
|
||
FEditComponent := nil;
|
||
if Assigned(ATube) then
|
||
begin
|
||
FEditComponent := ATube;
|
||
ActivateFNormBase(nil, ctsnTubeElement);
|
||
if AIDCurrConnector <> 0 then
|
||
TF_Main(FNormBase).SelectComponByIDInTree(AIDCurrConnector);
|
||
|
||
if ShowModal = mrOk then
|
||
begin
|
||
if Assigned(FNBComponent) then
|
||
Result := FNBComponent;
|
||
end;
|
||
end;
|
||
end;
|
||
//
|
||
|
||
function TF_ConnectComplWith.DefineCableForJoinToPoints(APointComponFrom, APointComponTo: TSCSComponent; ADefCableGUID: String = ''): TSCSComponent;
|
||
var
|
||
SprCompType: TNBComponentType;
|
||
begin
|
||
Result := nil;
|
||
FNBComponent := nil;
|
||
FFormMode := ccwDefineCableForJoinToPoints;
|
||
PrepareBeforeShow;
|
||
SetControls; //HideCableCanalPanels;
|
||
|
||
Caption := cConnectComplWith_Msg11;
|
||
GroupBox_ConnectBy.Caption := '';
|
||
|
||
ActivateFNormBase(GCompTypeSysNameCables, ctsnCable);
|
||
|
||
FNBComponentTypeGUID := '';
|
||
FPointComponentFrom := APointComponFrom;
|
||
FPointComponentTo := APointComponTo;
|
||
|
||
if ADefCableGUID <> '' then
|
||
begin
|
||
TF_Main(FNormBase).SelectComponInPCObjectsByGUID(ADefCableGUID); //03.06.2009 TF_Main(FNormBase).SelectComponByGUIDInTree(ADefCableGUID);
|
||
AfterChangeNBCompon; //07.02.2011
|
||
end;
|
||
|
||
if ShowModal = mrOk then
|
||
begin
|
||
if Assigned(FNBComponent) then
|
||
begin
|
||
Result := FNBComponent;
|
||
if neNewComponIndex.Value > 0 then
|
||
begin
|
||
SprCompType := F_ProjMan.GSCSBase.CurrProject.Spravochnik.GetComponentTypeWithAssign(FNBComponent.GUIDComponentType, F_NormBase.GSCSBase.NBSpravochnik);
|
||
if SprCompType <> nil then
|
||
SprCompType.ComponentType.ComponentIndex := neNewComponIndex.IntValue-1;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_ConnectComplWith.GetComponentFromNB(AIDCurrComponent: Integer; AByGUIDComponentType: String): TSCSComponent;
|
||
begin
|
||
Result := nil;
|
||
FNBComponent := nil;
|
||
FFormMode := ccwGetComponentFromNB;
|
||
PrepareBeforeShow;
|
||
SetControls; //HideCableCanalPanels;
|
||
|
||
Caption := cConnectComplWith_Msg12;
|
||
GroupBox_ConnectBy.Caption := '';
|
||
|
||
BeginProgress;
|
||
try
|
||
ActivateFNormBase(nil, '');
|
||
if AIDCurrComponent <> 0 then
|
||
TF_Main(FNormBase).SelectComponInPCObjects(AIDCurrComponent); //03.06.2009 TF_Main(FNormBase).SelectComponByIDInTree(AIDCurrComponent);
|
||
finally
|
||
EndProgress;
|
||
end;
|
||
|
||
FNBComponentTypeGUID := AByGUIDComponentType;
|
||
FNBComponentType := nil;
|
||
if FNBComponentTypeGUID <> '' then
|
||
FNBComponentType := F_NormBase.GSCSBase.NBSpravochnik.GetComponentTypeByGUID(FNBComponentTypeGUID);
|
||
|
||
if ShowModal = mrOk then
|
||
begin
|
||
if Assigned(FNBComponent) then
|
||
begin
|
||
Result := FNBComponent;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.Button_OKClick(Sender: TObject);
|
||
var NBCompon: TSCSComponent;
|
||
CrossConnectRes: TCrossConnectRes;
|
||
//ComponList1: TSCSComponents;
|
||
//ComponList2: TSCSComponents;
|
||
//SCSCompon1, SCSCompon2: TSCSComponent;
|
||
//ptrComplect: PComplect;
|
||
i, j: Integer;
|
||
|
||
//ParentNode: TTreeNode;
|
||
//ParentCompon: TSCSComponent;
|
||
//NewIDCompon: Integer;
|
||
//NewCompon: TSCSComponent;
|
||
//NewComponNode: TTreeNode;
|
||
//ConnectInterfRes: TConnectInterfRes;
|
||
//ConnectCount: Integer;
|
||
CanConnect: Boolean;
|
||
CheckReplaceComponResults: TCheckReplaceComponResults;
|
||
ConnectInterfRes1: TConnectInterfRes;
|
||
ConnectInterfRes2: TConnectInterfRes;
|
||
|
||
SrtMessage: String;
|
||
// Tolik 01/07/2019 --
|
||
NbNode: TTreeNode;
|
||
FindCompon: TSCSComponent;
|
||
|
||
procedure AddMessageToStr(AMessage: String);
|
||
begin
|
||
if SrtMessage <> '' then
|
||
SrtMessage := SrtMessage + #13+#10;
|
||
SrtMessage := SrtMessage + AMessage;
|
||
end;
|
||
|
||
begin
|
||
try
|
||
ModalResult := mrNone;
|
||
SrtMessage := '';
|
||
case FFormMode of
|
||
ccwConnectComplWith:
|
||
begin
|
||
if Not Assigned(FConnectCompon) then
|
||
begin
|
||
ModalResult := mrNone;
|
||
Exit; //// EXIT ////
|
||
end;
|
||
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
|
||
BeginProgress;
|
||
try
|
||
CrossConnectRes := TF_Main(GForm).F_ChoiceConnectSide.ConnectCrossWithModules(NBCompon, FComponent, FConnectCompon, false);
|
||
|
||
if Not CrossConnectRes.Successful then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg13_1+' "'+NBCompon.Name+'" '+cConnectComplWith_Msg13_2,
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
end
|
||
else
|
||
ModalResult := mrOk;
|
||
finally
|
||
EndProgress;
|
||
NBCompon.Free;
|
||
end;
|
||
end;
|
||
|
||
{ccwConnectComplWith:
|
||
begin
|
||
ParentCompon := nil;
|
||
if (Not Assigned(FConnectCompon)) or (Not Assigned(FConnectCompon)) then
|
||
begin
|
||
ModalResult := mrNone;
|
||
Exit; //// EXIT ////
|
||
end;
|
||
|
||
ConnectCount := 0;
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent);
|
||
try
|
||
if NBCompon.ID = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
ComponList1 := TSCSComponents.Create(false);
|
||
ComponList2 := TSCSComponents.Create(false);
|
||
|
||
ParentNode := FCurrNode.Parent;
|
||
ParentCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(PObjectData(ParentNode.Data).ObjectID);
|
||
if Assigned(ParentCompon) then
|
||
try
|
||
ComponList1.Add(FComponent);
|
||
ComponList1.Assign(FComponent.ChildReferences, laOr);
|
||
ComponList2.Add(FConnectCompon);
|
||
ComponList2.Assign(FConnectCompon.ChildReferences, laOr);
|
||
|
||
ComponList1.Pack;
|
||
ComponList2.Pack;
|
||
for i := 0 to ComponList1.Count - 1 do
|
||
ComponList1[i].ServCanConnect := true;
|
||
for i := 0 to ComponList2.Count - 1 do
|
||
ComponList2[i].ServCanConnect := true;
|
||
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
|
||
if ParentNode <> nil then
|
||
for i := 0 to ComponList1.Count - 1 do
|
||
begin
|
||
SCSCompon1 := ComponList1[i];
|
||
if NBCompon.EmConnectTo(SCSCompon1) then
|
||
begin
|
||
for j := 0 to ComponList2.Count - 1 do
|
||
begin
|
||
SCSCompon2 := ComponList2[j];
|
||
if (SCSCompon2.ServCanConnect) and (NBCompon.EmConnectTo(SCSCompon2)) then
|
||
begin
|
||
NewIDCompon := TF_MAIN(GForm).CopyComponentFromNbToPm(F_NormBase, GForm, ParentNode, NBCompon.ID, ckCompl);
|
||
NewCompon := nil;
|
||
NewCompon := TF_MAIN(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NewIDCompon);
|
||
if Assigned(NewCompon) then
|
||
begin
|
||
ptrComplect := ParentCompon.ComplectWithOnlyObject(NewCompon);
|
||
ptrComplect.ID := TF_Main(GForm).AppendToComponRel(ParentCompon.ID, NewCompon.ID, 1, cntComplect);
|
||
NewComponNode := TF_Main(GForm).FindComponOrDirInTree(NewIDCompon, true);
|
||
if Assigned(NewComponNode) then
|
||
PObjectData(NewComponNode).ID_CompRel := ptrComplect.ID;
|
||
//TF_Main(GForm).F_ChoiceConnectSide.OnAfterConnectCompons(ParentCompon, NewCompon);
|
||
|
||
|
||
NBCompon.EmDisconnect(SCSCompon1);
|
||
NBCompon.EmDisconnect(SCSCompon2);
|
||
|
||
|
||
//ConnectInterfRes := TF_Main(GForm).F_ChoiceConnectSide.ConnectInterfaces(NewCompon, SCSCompon1, -1, -1, cnkVarious, false, smtNone, false);
|
||
ConnectInterfRes := NewCompon.JoinTo(SCSCompon1, -1, -1);
|
||
if ConnectInterfRes.CanConnect then
|
||
begin
|
||
//ConnectInterfRes := TF_Main(GForm).F_ChoiceConnectSide.ConnectInterfaces(NewCompon, SCSCompon2, -1, -1, cnkVarious, false, smtNone, false);
|
||
ConnectInterfRes := NewCompon.JoinTo(SCSCompon2, -1, -1);
|
||
if ConnectInterfRes.CanConnect then
|
||
Inc(ConnectCount);
|
||
|
||
ClearList(NBCompon.Interfaces);
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
|
||
SCSCompon1.ServCanConnect := false;
|
||
SCSCompon2.ServCanConnect := false;
|
||
|
||
Break; //// BREAK ////
|
||
end;
|
||
//else
|
||
//TF_Main(GForm).DelCompon(NewCompon, true, true, true);
|
||
end;
|
||
NBCompon.EmDisconnect(SCSCompon2);
|
||
end;
|
||
end;
|
||
NBCompon.EmDisconnect(SCSCompon1);
|
||
end;
|
||
end;
|
||
finally
|
||
ComponList1.Free;
|
||
ComponList2.Free;
|
||
end;
|
||
|
||
if ConnectCount = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+NBCompon.Name+'" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
end
|
||
else
|
||
begin
|
||
if Assigned(NewCompon) then
|
||
TF_Main(GForm).F_ChoiceConnectSide.OnAfterConnectCompons(ParentCompon, NewCompon);
|
||
ModalResult := mrOk;
|
||
end;
|
||
finally
|
||
NBCompon.Free;
|
||
end;
|
||
end; }
|
||
ccwDefineReplaceCompon:
|
||
if Assigned(FConnectCompon) then
|
||
begin
|
||
//Tolik 01/07/2019 - -
|
||
// NBCompon := TSCSComponent.Create(F_NormBase);
|
||
|
||
// NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
NBCompon := nil;
|
||
FindCompon := nil;
|
||
NbNode := nil;
|
||
|
||
// NbNode := Tf_Main(F_NormBase).FindComponOrDirInTree(TF_Main(FNormBase).GSCSBase.SCSComponent.ID,False);
|
||
NbNode := Tf_Main(F_NormBase).FindComponOrDirInTree(TF_Main(FNormBase).GSCSBase.SCSComponent.ID, True);
|
||
|
||
if nbNode <> nil then
|
||
FindCompon := Tf_Main(F_NormBase).GetComponentFromNode(NbNode);
|
||
|
||
if FindCompon <> nil then
|
||
begin
|
||
//FindCompon.LoadChildComplects(true, true, true);
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(FindCompon, true, true);
|
||
//NBCompon.LoadChildComplects(true, true, true);
|
||
end;
|
||
//
|
||
if NBCompon.ID = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg14,
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
NBCompon.Free; // Tolik 18/05/2018 --
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
if NBCompon.Interfaces.Count = 0 then
|
||
NBCompon.LoadInterfaces;
|
||
if NBCompon.ChildComplects.Count = 0 then
|
||
NBCompon.LoadChildComplects(true, true, true);
|
||
|
||
|
||
//26.05.2009 if FConnectCompon.GUIDComponentType <> NBCompon.GUIDComponentType then
|
||
if FConnectCompon.ComponentType.SysName <> NBCompon.ComponentType.SysName then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg15_1+' "'+FConnectCompon.Name+'" '+cConnectComplWith_Msg15_2+' "'+NBCompon.Name+'", '+cConnectComplWith_Msg15_3,
|
||
cConnectComplWith_Msg15_4, MB_OK or MB_ICONINFORMATION);
|
||
NBCompon.Free;
|
||
ModalResult := mrNone;
|
||
end
|
||
else
|
||
begin
|
||
CheckReplaceComponResults := FConnectCompon.CanReplaceWithNBCompon(NBCompon, cbLeaveComplectsInTarget.Checked);
|
||
|
||
SrtMessage := '';
|
||
if crcrBadFunctionalInterfaces in CheckReplaceComponResults then
|
||
if GUseVisibleInterfaces then
|
||
AddMessageToStr(cConnectComplWith_Msg16_1)
|
||
else
|
||
AddMessageToStr(cConnectComplWith_Msg16_1_1);
|
||
if GUseVisibleInterfaces then
|
||
begin
|
||
if crcrBadContructiveInterfaces in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_2);
|
||
if crcrCannotComplectToParentByParams in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_3+' "'+FConnectCompon.GetParentComponent.GetNameForVisible+'"');
|
||
if crcrCannotComplectChildrenByParams in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_4+' "'+FConnectCompon.GetNameForVisible+'"');
|
||
if crcrSmallCanal in CheckReplaceComponResults then
|
||
begin
|
||
if FConnectCompon.ComponentType.SysName = ctsnCableChannel then
|
||
AddMessageToStr(cConnectComplWith_Msg16_5+' "'+FConnectCompon.GetNameForVisible+'"')
|
||
else
|
||
if (FConnectCompon.Parent is TSCSComponent) and (TSCSComponent(FConnectCompon.Parent).ComponentType.SysName = ctsnCableChannel) then
|
||
AddMessageToStr(cConnectComplWith_Msg16_6+' "'+TSCSComponent(FConnectCompon.Parent).GetNameForVisible+'"');
|
||
end;
|
||
end;
|
||
|
||
if SrtMessage <> '' then
|
||
begin
|
||
SrtMessage := cConnectComplWith_Msg17_2+':'+#13+#10 + SrtMessage;
|
||
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg17_1+' "'+FConnectCompon.Name+'" '+cConnectComplWith_Msg15_2+' "'+NBCompon.Name+'"'+
|
||
SrtMessage,
|
||
cConnectComplWith_Msg17_3, MB_OK or MB_ICONINFORMATION);
|
||
NBCompon.Free;
|
||
ModalResult := mrNone;
|
||
end
|
||
else
|
||
begin
|
||
FReplaceComponent := FConnectCompon;
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
end;
|
||
|
||
{//04.06.2009
|
||
if crcrSuccessful in CheckReplaceComponResults then
|
||
begin
|
||
FReplaceComponent := FConnectCompon;
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
end
|
||
else
|
||
begin
|
||
if crcrBadFunctionalInterfaces in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_1);
|
||
if crcrBadContructiveInterfaces in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_2);
|
||
if crcrCannotComplectToParentByParams in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_3+' "'+FConnectCompon.GetParentComponent.GetNameForVisible+'"');
|
||
if crcrCannotComplectChildrenByParams in CheckReplaceComponResults then
|
||
AddMessageToStr(cConnectComplWith_Msg16_4+' "'+FConnectCompon.GetNameForVisible+'"');
|
||
if crcrSmallCanal in CheckReplaceComponResults then
|
||
begin
|
||
if FConnectCompon.ComponentType.SysName = ctsnCableChannel then
|
||
AddMessageToStr(cConnectComplWith_Msg16_5+' "'+FConnectCompon.GetNameForVisible+'"')
|
||
else
|
||
if (FConnectCompon.Parent is TSCSComponent) and (TSCSComponent(FConnectCompon.Parent).ComponentType.SysName = ctsnCableChannel) then
|
||
AddMessageToStr(cConnectComplWith_Msg16_6+' "'+TSCSComponent(FConnectCompon.Parent).GetNameForVisible+'"');
|
||
end;
|
||
|
||
if SrtMessage <> '' then
|
||
SrtMessage := cConnectComplWith_Msg17_2+':'+#13+#10 + SrtMessage;
|
||
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg17_1+' "'+FConnectCompon.Name+'" <20><> "'+NBCompon.Name+'"'+
|
||
SrtMessage,
|
||
cConnectComplWith_Msg17_3, MB_OK or MB_ICONINFORMATION);
|
||
NBCompon.Free;
|
||
ModalResult := mrNone;
|
||
end;}
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg18_1,
|
||
cConnectComplWith_Msg18_2, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
end;
|
||
ccwDefineReplaceCableCanal:
|
||
if Assigned(FConnectCompon) and (FMinNBCableCanalVolume <> -1) then
|
||
begin
|
||
ModalResult := mrOk;
|
||
|
||
FNBComponent := TSCSComponent.Create(F_NormBase);
|
||
FNBComponent.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
|
||
{
|
||
if TF_Main(FNormBase).GSCSBase.SCSComponent.ID = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
if TF_Main(FNormBase).GSCSBase.SCSComponent.ID_ComponentType = ctCableCanal then
|
||
begin
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent);
|
||
|
||
if NBCompon.Interfaces.Count = 0 then
|
||
NBCompon.LoadInterfaces;
|
||
if NBCompon.ChildComplects.Count = 0 then
|
||
NBCompon.LoadChildComplects(true, true);
|
||
|
||
if (NBCompon.GetVolume(gtFemale) - NBCompon.GetCablesVolume) >= FMinNBCableCanalVolume then
|
||
begin
|
||
FReplaceComponent := FConnectCompon;
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
end
|
||
else
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+NBCompon.Name+'" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatToStr(NBCompon.GetVolume(gtFemale) - NBCompon.GetCablesVolume)+' <20><>2'+#10+#13+
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> '+FloatToStr(FMinNBCableCanalVolume)+' <20><>2', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_OK or MB_ICONINFORMATION);
|
||
end
|
||
else
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+'" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_OK or MB_ICONINFORMATION);
|
||
}
|
||
end
|
||
else
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg19_1,
|
||
cConnectComplWith_Msg19_2, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
ccwDefineCableCanalConnector:
|
||
begin
|
||
if TF_Main(FNormBase).GSCSBase.SCSComponent.ComponentType.SysName = ctsnCableChannelElement then
|
||
begin
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
NBCompon.LoadChildComplectsQuick(true, true, true);
|
||
|
||
CanConnect := false;
|
||
if NBCompon.Properties.Count = 0 then
|
||
NBCompon.LoadProperties;
|
||
if NBCompon.GetPropertyValueAsInteger(pnCableCanalElemetType) = contNone then
|
||
begin
|
||
MessageModal(cConnectComplWith_Msg20_1+' "'+NBCompon.GetNameForVisible+'" '+cConnectComplWith_Msg20_2,
|
||
ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
NBCompon.Free;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
//if FEditComponent.EmConnectTo(NBCompon) then // Side1
|
||
//if FEditComponent.EmConnectTo(NBCompon) then // Side2
|
||
if CheckJoinComponentToWithComplects(FEditComponent, NBCompon, -1, -1) then
|
||
begin
|
||
CanConnect := true;
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
end;
|
||
//FEditComponent.EmDisconnect(NBCompon);
|
||
//FEditComponent.EmDisconnect(NBCompon);
|
||
|
||
if Not CanConnect then
|
||
begin
|
||
NBCompon.Free;
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg21_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+'" '+cConnectComplWith_Msg21_2+' "'+FEditComponent.Name+'"', Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
end
|
||
else
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg22_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+'" '+cConnectComplWith_Msg22_2, Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
//Tolik 15/11/2021 --
|
||
ccwDefineTubeConnector:
|
||
begin
|
||
if TF_Main(FNormBase).GSCSBase.SCSComponent.ComponentType.SysName = ctsnTubeElement then
|
||
begin
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
NBCompon.LoadChildComplectsQuick(true, true, true);
|
||
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
{
|
||
CanConnect := false;
|
||
if NBCompon.Properties.Count = 0 then
|
||
NBCompon.LoadProperties;
|
||
if NBCompon.GetPropertyValueAsInteger(pnCableCanalElemetType) = contNone then
|
||
begin
|
||
MessageModal(cConnectComplWith_Msg20_1+' "'+NBCompon.GetNameForVisible+'" '+cConnectComplWith_Msg20_2,
|
||
ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
NBCompon.Free;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
}
|
||
|
||
//if FEditComponent.EmConnectTo(NBCompon) then // Side1
|
||
//if FEditComponent.EmConnectTo(NBCompon) then // Side2
|
||
{
|
||
if CheckJoinComponentToWithComplects(FEditComponent, NBCompon, -1, -1) then
|
||
begin
|
||
CanConnect := true;
|
||
FNBComponent := NBCompon;
|
||
ModalResult := mrOk;
|
||
end;
|
||
}
|
||
//FEditComponent.EmDisconnect(NBCompon);
|
||
//FEditComponent.EmDisconnect(NBCompon);
|
||
{
|
||
if Not CanConnect then
|
||
begin
|
||
NBCompon.Free;
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg21_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+'" '+cConnectComplWith_Msg21_2+' "'+FEditComponent.Name+'"', Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
}
|
||
end
|
||
else
|
||
ShowMessageByType(Self.Handle, smtDisplay, cConnectComplWith_Msg22_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+'" '+cConnectComplWith_TubeMsg22_2, Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
//
|
||
ccwDefineCableForJoinToPoints:
|
||
begin
|
||
if (TF_Main(FNormBase).GSCSBase.SCSComponent <> nil) and
|
||
(TF_Main(FNormBase).GSCSBase.SCSComponent.ID > 0) then
|
||
begin
|
||
if TF_Main(FNormBase).GSCSBase.SCSComponent.IsLine = biFalse then
|
||
begin
|
||
MessageModal(cConnectComplWith_Msg23_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.GetNameForVisible+'" '+cConnectComplWith_Msg23_2, ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
|
||
ConnectInterfRes1.CanConnect := true;
|
||
ConnectInterfRes2.CanConnect := true;
|
||
if FPointComponentFrom <> nil then
|
||
ConnectInterfRes1 := FPointComponentFrom.CheckJoinTo(NBCompon, -1, -1);
|
||
if FPointComponentTo <> nil then
|
||
ConnectInterfRes2 := FPointComponentTo.CheckJoinTo(NBCompon, -1, -1);
|
||
if ConnectInterfRes1.CanConnect and ConnectInterfRes2.CanConnect then
|
||
begin
|
||
ModalResult := mrOk;
|
||
FNBComponent := NBCompon;
|
||
end
|
||
else
|
||
begin
|
||
if Not ConnectInterfRes1.CanConnect then
|
||
AddMessageToStr(cConnectComplWith_Msg24_3+' "'+FPointComponentFrom.GetNameForVisible+'" ');
|
||
if Not ConnectInterfRes2.CanConnect then
|
||
AddMessageToStr(cConnectComplWith_Msg24_4+' "'+FPointComponentTo.GetNameForVisible+'" ');
|
||
if SrtMessage <> '' then
|
||
SrtMessage := cConnectComplWith_Msg24_1+' "'+NBCompon.GetNameForVisible+'" '+cConnectComplWith_Msg24_2+':'+#13+#10 + SrtMessage;
|
||
|
||
ShowMessageByType(Self.Handle, smtDisplay, SrtMessage, ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
NBCompon.Free;
|
||
end;
|
||
end;
|
||
end;
|
||
ccwGetComponentFromNB:
|
||
begin
|
||
if (TF_Main(FNormBase).GSCSBase.SCSComponent <> nil) and
|
||
(TF_Main(FNormBase).GSCSBase.SCSComponent.ID > 0) then
|
||
begin
|
||
if (FNBComponentType = nil) or
|
||
(TF_Main(FNormBase).GSCSBase.SCSComponent.ComponentType.GUID = FNBComponentType.ComponentType.GUID) then
|
||
begin
|
||
FNBComponent := TSCSComponent.Create(F_NormBase);
|
||
FNBComponent.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent, true, true);
|
||
ModalResult := mrOk;
|
||
end
|
||
else
|
||
if FNBComponentType <> nil then
|
||
MessageModal(cConnectComplWith_Msg25_1+' "'+TF_Main(FNormBase).GSCSBase.SCSComponent.Name+
|
||
'" '+cConnectComplWith_Msg25_2+' "'+FNBComponentType.ComponentType.Name+'".', ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
end
|
||
else
|
||
MessageModal(cConnectComplWith_Msg26, ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.Button_OKClick: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
{
|
||
procedure TF_ConnectComplWith.Button_OKClick(Sender: TObject);
|
||
var NBCompon: TSCSComponent;
|
||
ComponList1: TSCSComponents;
|
||
ComponList2: TSCSComponents;
|
||
SCSCompon1, SCSCompon2: TSCSComponent;
|
||
i, j: Integer;
|
||
|
||
ParentNode: TTreeNode;
|
||
ParentCompon: TSCSComponent;
|
||
NewIDCompon: Integer;
|
||
NewCompon: TSCSComponent;
|
||
ConnectInterfRes: TConnectInterfRes;
|
||
ConnectCount: Integer;
|
||
begin
|
||
try
|
||
ConnectCount := 0;
|
||
NBCompon := TSCSComponent.Create(F_NormBase);
|
||
NBCompon.Assign(TF_Main(FNormBase).GSCSBase.SCSComponent);
|
||
try
|
||
if NBCompon.ID = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
ComponList1 := TSCSComponents.Create(false);
|
||
ComponList2 := TSCSComponents.Create(false);
|
||
|
||
ParentNode := FCurrNode.Parent;
|
||
ParentCompon := TSCSComponent.Create(GForm);
|
||
ParentCompon.LoadComponentByID(PObjectData(ParentNode.Data).ObjectID, false);
|
||
try
|
||
ComponList1.Add(FComponent);
|
||
ComponList1.Assign(FComponent.AllSCSComplects, laOr);
|
||
ComponList2.Add(FConnectCompon);
|
||
ComponList2.Assign(FConnectCompon.AllSCSComplects, laOr);
|
||
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
|
||
if ParentNode <> nil then
|
||
for i := 0 to ComponList1.Count - 1 do
|
||
begin
|
||
SCSCompon1 := ComponList1[i];
|
||
if NBCompon.EmConnectTo(SCSCompon1) then
|
||
begin
|
||
for j := 0 to ComponList2.Count - 1 do
|
||
begin
|
||
SCSCompon2 := ComponList2[j];
|
||
if (SCSCompon2.ID <> 0) and (NBCompon.EmConnectTo(SCSCompon2)) then
|
||
begin
|
||
NewIDCompon := TF_MAIN(GForm).CopyComponentFromNbToPm((F_NormBase), GForm, ParentNode, NBCompon.ID, ckCompl);
|
||
NewCompon := TSCSComponent.Create(GForm);
|
||
NewCompon.LoadComponentByID(NewIDCompon, false);
|
||
NewCompon.LoadInterfaces(-1, false);
|
||
try
|
||
TF_Main(GForm).AppendToComponRel(ParentCompon.ID, NewCompon.ID, 1, cntComplect);
|
||
TF_Main(GForm).F_ChoiceConnectSide.OnAfterConnectCompons(ParentCompon, NewCompon);
|
||
|
||
|
||
NBCompon.EmDisconnect(SCSCompon1);
|
||
NBCompon.EmDisconnect(SCSCompon2);
|
||
|
||
|
||
ConnectInterfRes := TF_Main(GForm).F_ChoiceConnectSide.ConnectInterfaces(NewCompon, SCSCompon1, -1, -1, cnkVarious, false, smtNone, false);
|
||
if ConnectInterfRes.CanConnect then
|
||
begin
|
||
ConnectInterfRes := TF_Main(GForm).F_ChoiceConnectSide.ConnectInterfaces(NewCompon, SCSCompon2, -1, -1, cnkVarious, false, smtNone, false);
|
||
if ConnectInterfRes.CanConnect then
|
||
Inc(ConnectCount);
|
||
|
||
ClearList(NBCompon.Interfaces);
|
||
NBCompon.LoadInterfaces(-1, false);
|
||
|
||
SCSCompon1.Clear;
|
||
SCSCompon2.Clear;
|
||
|
||
Break; //// BREAK ////
|
||
end;
|
||
finally
|
||
NewCompon.Free;
|
||
end;
|
||
NBCompon.EmDisconnect(SCSCompon2);
|
||
end;
|
||
end;
|
||
NBCompon.EmDisconnect(SCSCompon1);
|
||
end;
|
||
end;
|
||
finally
|
||
ComponList1.Free;
|
||
ComponList2.Free;
|
||
end;
|
||
|
||
if ConnectCount = 0 then
|
||
begin
|
||
ShowMessageByType(Self.Handle, smtDisplay, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+NBCompon.Name+'" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||
Application.Title, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
end;
|
||
finally
|
||
NBCompon.Free;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_ConnectComplWith.Button_OKClick: '+E.Message);
|
||
end;
|
||
end;
|
||
}
|
||
|
||
procedure TF_ConnectComplWith.Panel_OkCancelResize(Sender: TObject);
|
||
begin
|
||
SetMiddleControlChilds(TControl(Sender), TControl(Self));
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.SpinEdit_FullMorePercentPropertiesChange(
|
||
Sender: TObject);
|
||
var i: Integer;
|
||
ComponWithMaxVolume: TSCSComponent;
|
||
ItemIndex: Integer;
|
||
begin
|
||
if SpinEdit_FullMorePercent.Value < 1 then
|
||
begin
|
||
SpinEdit_FullMorePercent.Properties.OnChange := nil;
|
||
try
|
||
SpinEdit_FullMorePercent.Value := 1;
|
||
finally
|
||
SpinEdit_FullMorePercent.Properties.OnChange := SpinEdit_FullMorePercentPropertiesChange;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
FCableCanalsToCanReplace.Clear;
|
||
FMaxCableCanalToReplaceVolume := 0;
|
||
FMinNBCableCanalVolume := 0;
|
||
ComponWithMaxVolume := nil;
|
||
Label_ComponFullness.Caption := '';
|
||
for i := 0 to FAllCableCanals.Count - 1 do
|
||
if Assigned(FAllCableCanals[i]) then
|
||
if FAllCableCanals[i].GetFullnessPercentCableCanal >= TcxSpinEdit(Sender).Value then
|
||
FCableCanalsToCanReplace.Add(FAllCableCanals[i]);
|
||
|
||
try
|
||
TF_Main(GForm).LockTreeAndGrid(true);
|
||
ItemIndex := 0;
|
||
if ListView_ConnectWith.Items.Count > 0 then
|
||
begin
|
||
ItemIndex := ListView_ConnectWith.Items[0].Index;
|
||
//ClearListView(ListView_ConnectWith);
|
||
ListView_ConnectWith.Clear;
|
||
end;
|
||
FillListViewBySCSComponents(ListView_ConnectWith, FCableCanalsToCanReplace);
|
||
if ListView_ConnectWith.Items.Count > 0 then
|
||
if ItemIndex <= ListView_ConnectWith.Items.Count - 1 then
|
||
ListView_ConnectWith.Selected := ListView_ConnectWith.Items[ItemIndex];
|
||
finally
|
||
TF_Main(GForm).LockTreeAndGrid(false);
|
||
end;
|
||
|
||
LoadCanalsToBeReplace;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.lvComponentsToBeReplaceSelectItem(
|
||
Sender: TObject; Item: TListItem; Selected: Boolean);
|
||
var
|
||
Compon: TSCSComponent;
|
||
CmponNode: TTreeNode;
|
||
begin
|
||
if Assigned(Item) then
|
||
begin
|
||
Compon := Item.Data;
|
||
if Assigned(Compon) then
|
||
begin
|
||
CmponNode := Compon.TreeViewNode;
|
||
if CmponNode = nil then
|
||
CmponNode := TF_Main(GForm).FindComponOrDirInTree(Compon.ID, true);
|
||
if CmponNode <> nil then
|
||
TF_Main(GForm).Tree_Catalog.Selected := CmponNode;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.tvComponentsToBeReplaceStateChange(
|
||
Sender: TObject; Node: TTreeNode; NewState: TRzCheckState);
|
||
begin
|
||
SetControls;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.tvComponentsToBeReplaceChange(
|
||
Sender: TObject; Node: TTreeNode);
|
||
var
|
||
SCSComponent: TSCSComponent;
|
||
ComponNode: TTreeNode;
|
||
begin
|
||
SCSComponent := nil;
|
||
ComponNode := nil;
|
||
|
||
if Node <> nil then
|
||
if Node.Data <> nil then
|
||
begin
|
||
SCSComponent := TSCSComponent(Node.Data);
|
||
if Assigned(SCSComponent) then
|
||
begin
|
||
ComponNode := SCSComponent.TreeViewNode;
|
||
if ComponNode = nil then
|
||
ComponNode := TF_Main(GForm).FindComponOrDirInTree(SCSComponent.ID, true);
|
||
if ComponNode <> nil then
|
||
TF_Main(GForm).Tree_Catalog.Selected := ComponNode;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.SpinEdit_FullMorePercentKeyPress(
|
||
Sender: TObject; var Key: Char);
|
||
begin
|
||
//if SpinEdit_FullMorePercent.EditText = '' then
|
||
// if Key = '0' then
|
||
// Key := #0;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.OnApplyForAllChanged;
|
||
begin
|
||
cbApplyForComplects.Enabled := cbApplyForCurrList.Checked or cbApplyForCurrProj.Checked;
|
||
cbApplyForCurrList.Enabled := Not cbApplyForCurrProj.Checked and Not FFromResources;
|
||
cbApplyForOnlySelected.Enabled := Not FFromResources and (cbApplyForCurrList.Checked or cbApplyForCurrProj.Checked);
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.cbApplyForCurrListClick(Sender: TObject);
|
||
begin
|
||
//cbApplyForComplects.Enabled := TRzCheckBox(Sender).Checked;
|
||
OnApplyForAllChanged;
|
||
end;
|
||
|
||
procedure TF_ConnectComplWith.cbApplyForCurrProjClick(Sender: TObject);
|
||
begin
|
||
OnApplyForAllChanged;
|
||
end;
|
||
|
||
|
||
end.
|
||
|