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

1205 lines
41 KiB
ObjectPascal
Raw Permalink Blame History

unit U_InputBox;
interface
uses
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxLookAndFeelPainters, StdCtrls, cxButtons, cxControls,
cxContainer, cxEdit, cxTextEdit, U_BaseCommon, ExtCtrls, cxRadioGroup,
ComCtrls, ActnList, ActnMan, cxGroupBox,
U_BaseConstants, U_SCSLists, U_SCSComponent, cxMaskEdit, cxSpinEdit, siComp, siLngLnk,
cxDropDownEdit, RzPanel, RzRadGrp, RzButton, RzRadChk, XPMenu, Menus,
ToolWin, cxGraphics, cxLookAndFeels, PlatformDefaultStyleActnCtrls;
const
// ControlTypeApplyForAll
ctalCheckBox = 01;
ctalRadio = 02;
mrSkipAll = $FF + 1;
type TItemType = Integer;
type TItemListData = Record
ID_Compon: Integer;
Complects: TStrings;
end;
PItemListData = ^TItemListData;
//type TComponViewKind = (cvkCompon, cvkComponComplect);
type
TibButton = (ibSkip, ibSkipAll, ibCancel);
TibButtons = set of TibButton;
type
TF_InputBox = class(TForm)
Panel_InputText: TPanel;
Label_Prompt: TLabel;
edText: TcxTextEdit;
Panel_ChoiceAddCompl: TPanel;
Label_Text: TLabel;
Button_Yes: TcxButton;
Button_No: TcxButton;
Label_ContinueQuast: TLabel;
Panel_ComponList: TPanel;
Label_Messg: TLabel;
ListView_Compons: TListView;
ActionManager: TActionManager;
Act_YesClick: TAction;
Act_Close: TAction;
Act_Back: TAction;
Label_ContinueConn: TLabel;
Panel_ChoiceDelComponMode: TPanel;
cxButton1: TcxButton;
cxButton2: TcxButton;
seValue: TcxSpinEdit;
lng_Forms: TsiLangLinked;
cbValue: TcxComboBox;
RadioGroup_ChoiceDelComponMode: TRzRadioGroup;
gbChioceAdd: TRzGroupBox;
rbAddComplWithoutInterf: TRzRadioButton;
rbFindComplect: TRzRadioButton;
meText: TMemo;
Button_OK: TRzBitBtn;
Button_Cancel: TRzBitBtn;
cbComponList: TRzCheckBox;
Act_Properties: TAction;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
XPMenu1: TXPMenu;
tbObjectList: TToolBar;
ToolButton1: TToolButton;
pnComponButtons: TPanel;
Button_Close: TcxButton;
Button_Back: TcxButton;
Button_CancelChoice: TcxButton;
btSkip: TcxButton;
rgComponList: TRzRadioGroup;
btSkipAll: TcxButton;
cbInputCombo: TRzCheckBox;
pnComboInputPrompt: TRzPanel;
cbDelConnToPoinCable: TRzCheckBox;
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Act_YesClickExecute(Sender: TObject);
procedure RadioGroup_ChioceAddPropertiesChange(Sender: TObject);
procedure Act_CloseExecute(Sender: TObject);
procedure Act_BackExecute(Sender: TObject);
procedure ListView_ComponsMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ListView_ComponsMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure ListView_ComponsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure Button_CancelChoiceClick(Sender: TObject);
procedure Act_PropertiesExecute(Sender: TObject);
procedure btSkipClick(Sender: TObject);
procedure pnComponButtonsResize(Sender: TObject);
procedure btSkipAllClick(Sender: TObject);
procedure ListView_ComponsDblClick(Sender: TObject);
private
{ Private declarations }
//GIDFindCompon: Integer;
//GIDChild: Integer;
FComponent: TSCSComponent;
FChildComponent: TSCSComponent;
FTopComponNode: TTreeNode;
GConnectKind: TConnectKind; //*** <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
GConnectType: TConnectType;
GFormBase: TForm;
GWasFindConnCompon: Boolean;
public
GForm: TForm;
GInputFormMode: TInputFormMode;
GTreeKind: TTreeKind;
GChangeInMainForm: Boolean;
GListKind: TInputBoxListKind;
//GItemType: TItemType;
GPrevListItem: TListItem;
GAnswQuatDifferent: TRect;
GLastSelID: Integer;
FIsSelectionItem: Boolean;
FButtons: TibButtons;
FTextInPluralMode: Boolean;
FChoiceDelComponModes: TstringList;
procedure FormView(AHeight, AWidth: Integer);
procedure ShowComplectsHint;
procedure GotoOnTree;
function ChoiceAddCompl(AFormBase: TForm; var AComponNode: TTreeNode; var ACanAdd: Boolean;
var AComponent: TSCSComponent; AChild: TSCSComponent; AConnectType: TConnectType;
AConnectKind: TConnectKind; AText: String; AShowMessageType: TShowMessageType = smtDisplay): Boolean;
function FindConnCompons(AComponent, AChild: TSCSComponent; AConnectType: TConnectType; AShowFinded: Boolean): Boolean;
function ChoiceDelComponMode(ACoponName: String; ATextInPluralMode: Boolean=false): TDelComponMode;
procedure SelectComponentFromList(const AMessage: String; AComponents: TSCSComponents);
constructor Create(AOwner: TComponent; AForm: TForm);
destructor Destroy; override;
end;
{
var
F_InputBox: TF_InputBox; }
implementation
Uses U_Main, USCS_Main, Unit_DM_SCS, U_DMCommon, U_Common{, U_BaseCommon};
{$R *.dfm}
procedure TF_InputBox.FormView(AHeight, AWidth: Integer);
begin
Height := AHeight;
Width := AWidth;
end;
// ##### <20><><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><EFBFBD><EFBFBD> #####
procedure TF_InputBox.ShowComplectsHint;
var ListItem: TListItem;
Point : TPoint;
begin
GetCursorPos(Point);
Point := ListView_Compons.ScreenToClient(Point);
ListItem := ListView_Compons.GetItemAt(Point.X, Point.Y);
if GListKind = lkComponComplect then
begin
if (ListItem <> nil) {and (GPrevListItem <> ListItem)} {and (Button = mbRight)} then
begin
ListView_Compons.Hint := ' '+cInputBox_Msg1+' ' + #13 + ' "'+ ListItem.Caption +'":' + #13 +
PItemListData(ListItem.Data).Complects.Text;
ListView_Compons.ShowHint := true;
Application.ShowHint := true;
end
else
begin
ListView_Compons.ShowHint := false;
Application.ShowHint := false;
end;
GPrevListItem := ListItem;
end;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.GotoOnTree;
var
//Item: TListItem;
Node: TTreeNode;
NodeDat: PObjectData;
ID_Node: Integer;
IDCompRel: Integer;
IsComponSelect: Boolean;
ComponID: Integer;
ComponItemType: Integer;
ComponControlObj: TObject;
ptrTemplateData: PTemplateData;
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
SCSComponent: TSCSComponent;
SCSCatalog: TSCSCatalog;
LineComponTrace: TIntList;
begin
LineComponTrace := nil;
try
try
if ListView_Compons.Selected <> nil then
with (GForm as TF_Main) do
begin
//GItemType := TF_Main(GForm).DM.GItemType;
ID_Node := -1;
IDCompRel := 0;
case GListKind of
lkComponObjectData:
begin
ID_Node := PObjectData(ListView_Compons.Selected.Data).ObjectID;
IDCompRel := PObjectData(ListView_Compons.Selected.Data).ID_CompRel;
end;
lkComponID:
ID_Node := Integer(ListView_Compons.Selected.Data);
lkComponComplect:
ID_Node := PItemListData(ListView_Compons.Selected.Data).ID_Compon;
lkBusyInterfaces:
ID_Node := PDirectoryTypeRel(ListView_Compons.Selected.Data).ID_DirecoryType;
end;
Node := nil;
IsComponSelect := false;
case GTreeKind of
trkCatalog:
begin
pcObjects.ActivePage := tsComponents;
if (IDCompRel <> 0) and (FTopComponNode <> nil) then
Node := FindChildNodeByIDCompRel(FTopComponNode, IDCompRel)
else
begin
IsComponSelect := true;
Node := FindComponOrDirInTree(ID_Node, true); // <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end;
end;
trkGuide : Node := F_CaseForm.FindNodeByID(ID_Node)
end;
if (GChangeInMainForm) then
case GTreeKind of
trkCatalog:
begin
ComponID := 0;
ComponItemType := 0;
if Node <> nil then
begin
SelectNodeDirect(Node); //Tree_catalog.Selected := Node;
NodeDat := Node.Data;
ComponID := NodeDat.ObjectID;
ComponItemType := NodeDat.ItemType;
end
else
begin
ComponControlObj := SelectComponInPCObjects(ID_Node);
if ComponControlObj <> nil then
begin
if ComponControlObj is TListItem then
begin
if TListItem(ComponControlObj).Data <> nil then
begin
ptrTemplateData := TListItem(ComponControlObj).Data;
if ptrTemplateData <> nil then
begin
ComponID := ptrTemplateData.IDComponent;
ComponItemType := GetItemTypeByIsLine(ptrTemplateData.IsLine);
end;
end;
end;
end;
end;
if ComponID <> 0 then
begin
if ComponItemType = itComponLine then
begin
//TF_Main(GForm).SelectTraceInCADByIDCompon(NodeDat.ObjectID);
if LineComponTrace <> nil then
LineComponTrace.Free; //FreeList(LineComponTrace);
LineComponTrace := GetComponLineTrace(ComponID);
if LineComponTrace <> nil then
SelectConnectedCables(TF_Main(GForm).GSCSBase.CurrProject.CurrList.CurrID, LineComponTrace);
LineComponTrace.Free; //FreeList(LineComponTrace);
LineComponTrace := nil
end;
if ComponItemType = itComponCon then
if TF_Main(GForm).GDBMode = bkProjectManager then
begin
SCSCatalog := nil;
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(ComponID);
if SCSComponent <> nil then
SCSCatalog := SCSComponent.GetFirstParentCatalog;
if SCSCatalog <> nil then
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.ScsID);
end;
end;
end;
trkGuide:
if Node <> nil then
begin
F_CaseForm.Tree_InterfType.Selected := Node;
if GListKind = lkBusyInterfaces then
SearchRecord(DM.DataSet_INTERFACE, 'ID', PDirectoryTypeRel(ListView_Compons.Selected.Data).ID_Pointer);
end;
end;
GLastSelID := ID_Node;
end;
except
on E: Exception do AddExceptionToLog('TF_InputBox.GotoOnTree: '+E.Message);
end;
finally
if LineComponTrace <> nil then
LineComponTrace.Free;
//FreeList(LineComponTrace);
end;
end;
function TF_InputBox.ChoiceAddCompl(AFormBase: TForm; var AComponNode: TTreeNode;
var ACanAdd: Boolean; var AComponent: TSCSComponent; AChild: TSCSComponent; AConnectType: TConnectType;
AConnectKind: TConnectKind; AText: String; AShowMessageType: TShowMessageType = smtDisplay): Boolean;
var KolCompl: Integer;
ModalRes: TModalResult;
HaveNecessaryCompl: Boolean;
ComponVolume: Double;
ChildVolume: Double;
//ptrFemaleInterface: TSCSInterface;
//ptrMaleInterface: TSCSInterface;
CanFemaleHaveMaleRes: TCanFemaleHaveMaleRes;
InterfFemale: TSCSInterface;
InterfMale: TSCSInterface;
FemaleHaveMaleRes: Boolean;
strMessg: String;
AddManual: boolean;
CableChannelFullness: Double;
//SCSList: TSCSList;
procedure AddMessgToStr(AMessg: String);
begin
if strMessg = '' then
strMessg := strMessg + cInputBox_Msg2_1+' "'+AChild.GetNameForVisible+'" '+cInputBox_Msg2_2+' "'+AComponent.GetNameForVisible+'" '+
cInputBox_Msg2_3+':';
strMessg := strMessg + #13+#10 + '-'+AMessg+';';
end;
begin
FTopComponNode := nil;
FIsSelectionItem := false;
with TF_Main(GForm) do
begin
Result := false;
ACanAdd := true;
HaveNecessaryCompl := false;
GFormBase := AFormBase;
GConnectKind := AConnectKind;
GConnectType := AConnectType;
//SCSList := nil;
CableChannelFullness := 0;
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
KolCompl := 0;
case TF_Main(GForm).GDBMode of
bkNormBase:
begin
SetSQLToQuery(DM.scsQ, ' SELECT COUNT(*) As Cnt FROM COMPONENT_RELATION '+
' WHERE (ID_COMPONENT = '''+ IntToStr(AComponent.ID) +''') and '+
' (Connect_Type = '''+ IntToStr(cntComplect) +''')');
KolCompl := DM.scsQ.GetFNAsInteger('Cnt');
end;
bkProjectManager:
KolCompl := AComponent.ChildComplects.Count;
end;
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if KolCompl > 0 then
HaveNecessaryCompl := FindConnCompons(AComponent, AChild, AConnectType, false);
if Not HaveNecessaryCompl then
case AConnectType of
cntComplect:
case AComponent.IsLine of
biTrue:
begin
strMessg := '';
InterfFemale := nil;
InterfMale := nil;
addManual := False;
FemaleHaveMaleRes := AComponent.CheckCanalHaveCable(AChild, InterfFemale, InterfMale).CanHave;
if (InterfFemale = nil) or (InterfMale = nil) then
begin
//if InterfFemale = nil then
// AddMessgToStr(cInputBox_Msg3_1+' "'+AComponent.GetNameForVisible+'" '+cInputBox_Msg3_2);
//if InterfMale = nil then
// AddMessgToStr(cInputBox_Msg4_1+' "'+AChild.GetNameForVisible+'" '+cInputBox_Msg4_2);
if (AChild.ComponentType.SysName = ctsnCableChannelAccessory) or
(AChild.ComponentType.SysName = ctsnAccessory) then
begin
if GUseVisibleInterfaces then
begin
if (AShowMessageType <> smtDisplay) or
(MessageModal(AText + #13 + #13 + ' '+cInputBox_Msg8_1+'?',
cInputBox_Msg8_2, MB_ICONQUESTION or MB_YESNO) = IDNO) then
begin
if GUseVisibleInterfaces then
AddMessgToStr(cInputBox_Msg4_3)
else
AddMessgToStr(cInputBox_Msg4_3_1);
end
else
AddManual := True;
end
else
AddMessgToStr(cInputBox_Msg4_3_1);
end
else
begin
if GUseVisibleInterfaces then
AddMessgToStr(cInputBox_Msg4_3)
else
AddMessgToStr(cInputBox_Msg4_3_1);
end;
end
else
begin
ComponVolume := InterfFemale.ValueI; //AComponent.GetVolume(gtFemale);
ChildVolume := InterfMale.ValueI; //AComponent.GetVolume(gtMale);
if ComponVolume = 0 then
AddMessgToStr(cInputBox_Msg5_1+' "'+AComponent.GetNameForVisible+'" '+cInputBox_Msg5_2)
else
begin
CableChannelFullness := GetCableCanalFullnessKoef(AComponent, AChild);
CanFemaleHaveMaleRes := CanFemaleHaveMale(InterfFemale, InterfMale.ValueI, CableChannelFullness);
if Not CanFemaleHaveMaleRes.CanHave then
begin
strMessg := cInputBox_Msg6_1+' "'+AComponent.GetNameForVisible+'" '+cInputBox_Msg6_2+' '+FloatToStr(RoundCP(FloatInUOM(CanFemaleHaveMaleRes.MaxFemaleFullValue, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+cInputBox_Msg6_31+' '+
' "'+AChild.GetNameForVisible+' '+cInputBox_Msg6_4+' '+FloatToStr(RoundCP(FloatInUOM(InterfMale.ValueI, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+' '+cInputBox_Msg6_51+'.'+ #13 +
cInputBox_Msg6_6+' "'+AComponent.GetNameForVisible+'" '+cInputBox_Msg6_7+' '+FloatToStr(RoundCP(FloatInUOM(CanFemaleHaveMaleRes.MinValueForMales, umSM, TF_Main(GForm).FUOMMin, 2)))+' '+GetNameUOM2(TF_Main(GForm).FUOMMin)+'.';
if CableChannelFullness > 0 then
strMessg := strMessg +#13+#10+#13+#10+cInputBox_Msg7+' '+FloatToStr(Round2(CableChannelFullness))+'%';
//ptrFemaleInterface := AComponent.GetInterfaceByTypeAndGender([itConstructive], [gtFemale], biTrue);
//ptrMaleInterface := AChild.GetInterfaceByTypeAndGender([itConstructive], [gtMale], biTrue);
//if (ptrFemaleInterface <> nil) and (ptrMaleInterface <> nil) then
//begin
// CanFemaleHaveMaleRes := CanFemaleHaveMale(ptrFemaleInterface, ptrMaleInterface.ValueI,TF_Main(GForm).GSCSBase.CurrProject.CurrList.Setting.CableCanalFullnessKoef);
// ShowMessageByType(Self.Handle, smtDisplay, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+AComponent.Name+'" (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatToStr(CanFemaleHaveMaleRes.MaxFemaleFullValue)+' <20><>2) <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+
// ' "'+AChild.Name+' (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '+FloatToStr(ptrMaleInterface.ValueI)+' <20><>2).'+ #13 +
// '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+AComponent.Name+'" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> '+FloatToStr(CanFemaleHaveMaleRes.MinValueForMales)+' <20><>2.',
// '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_ICONINFORMATION or MB_OK);
//end;
end
else
Result := true;
end;
end;
if strMessg <> '' then
begin
ShowMessageByType(Self.Handle, AShowMessageType, strMessg, cInputBox_Msg18_2, MB_ICONINFORMATION or MB_OK);
end;
ACanAdd := AddManual;
end;
biFalse:
if GUseVisibleInterfaces then
begin
if Not (AChild.ComponentType.SysName = ctsnPatchCord) and GUseVisibleInterfaces then
if (AShowMessageType <> smtDisplay) or
(MessageModal(AText + #13 + #13 + ' '+cInputBox_Msg8_1+'?',
cInputBox_Msg8_2, MB_ICONQUESTION or MB_YESNO) = IDNO) then
ACanAdd := false;
end;
end;
cntUnion:
begin
if AShowMessageType = smtDisplay then
MessageModal(AText, cInputBox_Msg9, MB_ICONQUESTION or MB_OK);
ACanAdd := false;
end;
end;
if HaveNecessaryCompl then
begin
GInputFormMode := imChoiceAddCompl;
GListKind := lkComponObjectData;
GTreeKind := trkCatalog;
GChangeInMainForm := true;
//Label_Text.Caption := AText;
meText.Lines.Text := AText;
//GIDFindCompon := AComponent.ID;
//GIDChild := AChild.ID;
FComponent := AComponent;
FChildComponent := AChild;
if FComponent.TreeViewNode <> nil then
FTopComponNode := GetTopComponNode(FComponent.TreeViewNode);
GLastSelID := 0;
case AConnectType of
cntComplect:
begin
Label_ContinueQuast.Caption := cInputBox_Msg10;
gbChioceAdd.Visible := true;
rbAddComplWithoutInterf.Checked := true;
Label_ContinueConn.Visible := false;
end;
cntUnion:
begin
rbFindComplect.Checked := true;
Label_ContinueConn.Visible := true;
if GUseVisibleInterfaces then
Label_ContinueConn.Caption := cInputBox_Msg11_1
else
Label_ContinueConn.Caption := cInputBox_Msg11_1_1;
Label_ContinueQuast.Caption := cInputBox_Msg11_2;
end;
end;
if GIsProgress then
PauseProgress(true);
try
ModalRes := F_InputBox.ShowModal;
finally
if GIsProgress then
PauseProgress(False);
end;
case ModalRes of
mrYes:
begin
if rbAddComplWithoutInterf.Checked then
ACanAdd := true
else
if rbFindComplect.Checked then
begin
if GLastSelID > 0 then
begin
AComponNode := Tree_Catalog.Selected;
//AComponent.ID := GLastSelID;
case GDBMode of
bkNormBase:
begin
AComponent.Clear;
AComponent.IDTopComponent := GetTopComponIDByNode(AComponNode);
AComponent.IDCompRel := GetIDCompRelFromNode(AComponNode);
AComponent.LoadComponentByID(GLastSelID, true, true, false);
AComponent.TreeViewNode := AComponNode;
ACanAdd := true;
Result := true;
end;
bkProjectManager:
begin
AComponent := GSCSBase.CurrProject.GetComponentFromReferences(GLastSelID);
if Assigned(AComponent) then
begin
ACanAdd := true;
Result := true;
end
else
begin
ACanAdd := false;
Result := false;
end;
end;
end;
end;
end;
end;
mrNo, mrCancel:
ACanAdd := false;
end;
end;
end;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>-<2D> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> AID_Component #####
// ##### <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D> <20> ID_Child #####
function TF_InputBox.FindConnCompons(AComponent, AChild: TSCSComponent; AConnectType: TConnectType; AShowFinded: Boolean): Boolean;
var ListItem: TListItem;
ID_Comp: ^Integer;
CanConnect: TCanConnectKind;
//KolConInterf: Integer;
SCSChild: TSCSComponent;
function Search(ACompon: TSCSComponent; AStepIndex: Integer): Boolean;
var //ComplIDList: TIntList;
//ComplID: Integer;
ChildComponents: TSCSComponents;
i: Integer;
SCSCompon: TSCSComponent;
SCSCompl: TSCSComponent;
ItemDat: PObjectData;
begin
Result := false;
with TF_Main(GForm) do
begin
ChildComponents := DM.GetComponChilds(ACompon.ID, AComponent.IDTopComponent, ACompon.IDCompRel, ACompon, '');
for i := 0 to ChildComponents.Count - 1 do
begin
SCSCompon := ChildComponents[i];
if TF_Main(SCSCompon.ActiveForm).GDBMode = bkNormBase then
begin
SCSCompon.LoadComplects(AComponent.IDTopComponent, SCSCompon.IDCompRel);
SCSCompon.LoadInterfaces;
SCSCompon.LoadProperties;
end;
//if CanConnect <> cckNone then
if SCSCompon.CheckComplectWith(SCSChild).CanConnect then
begin
case AShowFinded of
true:
begin
//GetMem(ID_Comp, SizeOf(Integer));
//ID_Comp^ := SCSCompon.ID;
NewData(ItemDat, ttComponents);
ItemDat.ObjectID := SCSCompon.ID;
ItemDat.ID_CompRel := SCSCompon.IDCompRel;
ListItem := ListView_Compons.Items.Add;
ListItem.Caption := SCSCompon.GetNameForVisible(false);
ListItem.ImageIndex := GetSCSComponType(SCSCompon.IsLine);
ListItem.Data := ItemDat; //ID_Comp;
Result := true;
end;
false:
begin
Result := true;
Exit; ///// EXIT /////
end;
end;
end;
if Search(SCSCompon, AStepIndex+1) = true then
if Not AShowFinded then
begin
Result := true;
Exit; ///// EXIT ////
end;
end;
FreeAndNil(ChildComponents);
end;
{
with TF_Main(GForm) do
begin
ComplIDList := TF_Main(GForm).DM.GetComponentChildsID(AID_Compon);
for i := 0 to ComplIDList.Count - 1 do
begin
ComplID := ComplIDList.Items[i];
SCSCompon := nil;
case GDBMode of
bkNormBase:
begin
SCSCompon := TSCSComponent.Create(GForm);
SCSCompon.LoadComponentByID(ComplID, false);
end;
bkProjectManager:
SCSCompon := GSCSBase.CurrProject.GetComponentFromReferences(ComplID);
end;
if Assigned(SCSCompon) then
begin
//CanConnect := CanConnComponByinterf(GFormBase, SCSCompon, SCSChild, GConnectKind, AConnectType);
//if CanConnect <> cckNone then
if SCSCompon.CheckComplectWith(SCSChild).CanConnect then
begin
case AShowFinded of
true:
begin
GetMem(ID_Comp, SizeOf(Integer));
ID_Comp^ := ComplID;
ListItem := ListView_Compons.Items.Add;
ListItem.Caption := SCSCompon.GetNameForVisible(false);
ListItem.ImageIndex := GetSCSComponType(SCSCompon.IsLine);
ListItem.Data := ID_Comp;
Result := true;
end;
false:
begin
Result := true;
Exit; ///// EXIT /////
end;
end;
end;
end;
if GDBMode = bkNormBase then
begin
if Assigned(SCSCompon) then
FreeAndNil(SCSCompon);
end;
if Search(ComplID) = true then
if Not AShowFinded then
begin
Result := true;
Exit; ///// EXIT ////
end;
end;
FreeAndNil(ComplIDList);
end; }
end;
begin
Result := false;
try
SCSChild := nil;
case TF_Main(GFormBase).GDBMode of
bkNormBase:
begin
SCSChild := TSCSComponent.Create(GFormBase);
SCSChild.Assign(AChild, false, true);
//SCSChild.LoadComponentByID(AID_Child, false);
end;
bkProjectManager:
SCSChild := TF_Main(GFormBase).GSCSBase.CurrProject.GetComponentFromReferences(AChild.ID);
end;
if Assigned(SCSChild) then
begin
Result := Search(AComponent, 0);
if TF_Main(SCSChild.ActiveForm).GDBMode = bkNormBase then
FreeAndNil(SCSChild);
end;
if ListView_Compons.Items.Count > 0 then
ListView_Compons.Selected := ListView_Compons.TopItem;
except
on E: Exception do AddExceptionToLog('TF_InputBox.FindConnCompons: '+E.Message);
end;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
function TF_InputBox.ChoiceDelComponMode(ACoponName: String; ATextInPluralMode: Boolean=false): TDelComponMode;
var
ModRes: TModalResult;
IsProgressActive: Boolean;
begin
// Tolik 01/12/2020 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dmNone, <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>...
//Result := dmNone;
Result := dmArea;
//
IsProgressActive := GetIsActiveFormProgress;
// IGOR Fix CAD white screen
{ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> FUpdateCountAdd <20> PCDrawing <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20> BeginProgress(ACaption: String = ''; AMaxPos: Integer = -1);
<20> <20> SetCADsProgressMode <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - FSCS_Main.FCADsInProgress
( if F_Progress.FPauseCount = 0 then
FSCS_Main.FCADsInProgress.Clear; )
if Assigned(FSCS_Main) then
if FSCS_Main.FCADsInProgress.Count = 0 then
IsProgressActive := False;
}
///////
if IsProgressActive then
PauseProgress(true);
try
FTextInPluralMode := ATextInPluralMode;
if Not FTextInPluralMode then
RadioGroup_ChoiceDelComponMode.Caption := ' '+cInputBox_Msg12
else
RadioGroup_ChoiceDelComponMode.Caption := ' '+cInputBox_Msg12_2;
if ACoponName <> '' then
RadioGroup_ChoiceDelComponMode.Caption := RadioGroup_ChoiceDelComponMode.Caption + ' "'+ACoponName+'"';
GInputFormMode := imChoiceDelComponMode;
RadioGroup_ChoiceDelComponMode.Items.Clear;
if ATextInPluralMode then
begin
RadioGroup_ChoiceDelComponMode.Items.Add(cInputBox_Msg19_1);
RadioGroup_ChoiceDelComponMode.Items.Add(cInputBox_Msg19_2);
end
else
RadioGroup_ChoiceDelComponMode.Items.Assign(FChoiceDelComponModes);
RadioGroup_ChoiceDelComponMode.ItemIndex := 1;
ModRes := ShowModal;
if ModRes = mrOK then
begin
case RadioGroup_ChoiceDelComponMode.ItemIndex of
0: Result := dmArea;
1: Result := dmTrace;
end;
end
else
if ModRes = mrCancel then
Result := dmNone;
finally
if IsProgressActive then
PauseProgress(false);
end;
end;
procedure TF_InputBox.SelectComponentFromList(const AMessage: String; AComponents: TSCSComponents);
var
i: Integer;
ListItem: TListItem;
CurrCompon: TSCSComponent;
//ptrID: ^Integer;
ItemDat: PObjectData;
begin
ClearListView(ListView_Compons);
for i := 0 to AComponents.Count - 1 do
begin
CurrCompon := AComponents[i];
ListItem := ListView_Compons.Items.Add;
ListItem.Caption := CurrCompon.GetNameForVisible(false);
ListItem.ImageIndex := -1;
//GetMem(ptrID, SizeOf(Integer));
//ptrID^ := CurrCompon.ID;
NewData(ItemDat, ttComponents);
ItemDat.ObjectID := CurrCompon.ID;
ListItem.Data := ItemDat; //ptrID;
end;
Label_Messg.Caption := AMessage;
GInputFormMode := imListForTree;
GTreeKind := trkCatalog;
GChangeInMainForm := true;
ListView_Compons.OnChange := ListView_ComponsChange;
ShowModal;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
constructor TF_InputBox.Create(AOwner: TComponent; AForm: TForm);
begin
GForm := AForm;
inherited Create(AOwner);
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
destructor TF_InputBox.Destroy;
begin
FChoiceDelComponModes.Free;
inherited;
end;
// #############################################################################
// #############################################################################
//
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.FormCreate(Sender: TObject);
begin
// Tolik 24/05/2021 --
cbDelConnToPoinCable.Parent := Panel_ChoiceDelComponMode;
cbDelConnToPoinCable.BringToFront;
RadioGroup_ChoiceDelComponMode.Top := 7;
cbDelConnToPoinCable.Top := 75;
RadioGroup_ChoiceDelComponMode.Width := 360;
//
FComponent := nil;
FChildComponent := nil;
FTopComponNode := nil;
FIsSelectionItem := false;
FChoiceDelComponModes := TStringList.Create;
FChoiceDelComponModes.Assign(RadioGroup_ChoiceDelComponMode.Items);
{Panel_InputText.Align := alClient;
Panel_ChoiceAddCompl.Align := alClient;
Panel_ComponList.Align := alClient; }
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.FormShow(Sender: TObject);
var
cxCustomEdit: TcxCustomEdit;
begin
GWasFindConnCompon := false;
Panel_InputText.Visible := false;
Panel_ChoiceAddCompl.Visible := false;
Panel_ComponList.Visible := false;
Panel_ChoiceDelComponMode.Visible := false;
cbDelConnToPoinCable.Visible := false; // Tolik 24/05/2021 --
case GInputFormMode of
imInputText, imInputFloat, imInputCombo:
begin
Panel_InputText.Visible := true;
cxCustomEdit := nil;
edText.Visible := false;
seValue.Visible := false;
cbValue.Visible := false;
case GInputFormMode of
imInputText:
cxCustomEdit := edText;
imInputFloat:
cxCustomEdit := seValue;
imInputCombo:
cxCustomEdit := cbValue;
end;
if cxCustomEdit <> nil then
begin
cxCustomEdit.Visible := true;
cxCustomEdit.SetFocus;
end;
FormView(150, 257);
end;
imChoiceAddCompl:
begin
Caption := cInputBox_Msg13_1;
Panel_ChoiceAddCompl.Visible := true;
//RadioGroup_ChioceAdd.ItemIndex := 0;
{Button_OK.Left := 64;
Button_Canxel.Left := 240;}
FormView(230, 385);
end;
imListForTree:
begin
//Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
Panel_ComponList.Visible := true;
Panel_ComponList.Top := 0;
Panel_ComponList.Left := 0;
FormView(290+30, 377); //FormView(290, 377);
ListView_Compons.SetFocus;
Act_Close.Visible := true;
Act_Back.Visible := false;
btSkip.Visible := ibSkip in FButtons;
btSkipAll.Visible := ibSkipAll in FButtons;
Button_CancelChoice.Visible := ibCancel in FButtons;
Button_Close.ModalResult := mrOk;
Button_Close.Cancel := Not FIsSelectionItem;
if ListView_Compons.Selected = nil then
begin
GLastSelID := 0;
ListView_Compons.HideSelection := Not FIsSelectionItem;
end;
if FIsSelectionItem then
begin
if ListView_Compons.Selected = nil then
if ListView_Compons.Items.Count > 0 then
ListView_Compons.Selected := ListView_Compons.Items[0];
Act_Close.Caption := cInputBox_Msg17;
end
else
begin
Act_Close.Caption := cInputBox_Msg14;
end;
end;
imChoiceDelComponMode:
begin
if Not FTextInPluralMode then
Caption := cInputBox_Msg13_2
else
Caption := cInputBox_Msg13_3;
Panel_ChoiceDelComponMode.Visible := true;
Panel_ChoiceDelComponMode.Height := 180;
Panel_ChoiceDelComponMode.Width := 380;
//Tolik 24/05/2021 --
//FormView(157, 350);
FormView(157, 381);
//cbDelConnToPoinCable.Visible := True;
cbDelConnToPoinCable.Visible := CheckHasCadSelectedPoints;
//
end;
end;
tbObjectList.Visible := GTreeKind = trkCatalog;
Act_Properties.Visible := tbObjectList.Visible;
pnComponButtonsResize(pnComponButtons);
end;
procedure TF_InputBox.FormHide(Sender: TObject);
var
i: Integer;
ListItem: TListItem;
begin
case GInputFormMode of
imChoiceAddCompl:
begin
Act_Close.Caption := cInputBox_Msg14;
Act_Back.Visible := false;
Button_CancelChoice.Visible := false;
end;
end;
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if GListKind <> lkComponID then
for i := 0 to ListView_Compons.Items.Count - 1 do
begin
ListItem := ListView_Compons.Items[i];
if GListKind = lkComponComplect then
FreeAndNil(PItemListData(ListItem.Data).Complects);
FreeMem(ListItem.Data);
end;
ListView_Compons.Items.BeginUpdate;
try
ListView_Compons.Items.Clear;
finally
ListView_Compons.Items.EndUpdate;
end;
Label_Messg.Caption := '';
ListView_Compons.OnChange := ListView_ComponsChange;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RadioGroup_ChioceAdd #####
procedure TF_InputBox.RadioGroup_ChioceAddPropertiesChange(
Sender: TObject);
begin
if rbAddComplWithoutInterf.Checked then
Button_Yes.Caption := cInputBox_Msg15_1
else
Button_Yes.Caption := cInputBox_Msg15_2;
end;
// ##### <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><>" #####
procedure TF_InputBox.Act_YesClickExecute(Sender: TObject);
begin
if rbAddComplWithoutInterf.Checked then
ModalResult := mrYes
else
if rbFindComplect.Checked then
begin
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Not GWasFindConnCompon then
begin
GLastSelID := 0;
FindConnCompons(FComponent, FChildComponent, GConnectType, true);
GWasFindConnCompon := true;
if ListView_Compons.Items.Count = 0 then
Label_Messg.Caption := cInputBox_Msg16_1
else
Label_Messg.Caption := cInputBox_Msg16_2;
end;
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ListView_Compons.Items.Count > 0 then
begin
Panel_ChoiceAddCompl.Visible := false;
Panel_ComponList.Visible := true;
Act_Close.Caption := cInputBox_Msg17;
Act_Back.Visible := true;
Button_CancelChoice.Visible := true;
FormView(Panel_ComponList.Height + 30, Panel_ComponList.Width);
Update;
ListView_Compons.SetFocus;
FIsSelectionItem := true;
pnComponButtonsResize(pnComponButtons);
end
else
begin
if GUseVisibleInterfaces then
MessageModal(cInputBox_Msg18_1, cInputBox_Msg18_2, MB_ICONQUESTION or MB_OK)
else
MessageModal(cInputBox_Msg18_1_1, cInputBox_Msg18_2, MB_ICONQUESTION or MB_OK);
end;
end;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)" #####
procedure TF_InputBox.Act_CloseExecute(Sender: TObject);
//var
// CanClose: Boolean;
begin
//CanClose := true;
if GInputFormMode = imChoiceAddCompl then
ModalResult := mrYes;
if GInputFormMode = imListForTree then
begin
ModalResult := mrOk;
if FIsSelectionItem then
if GLastSelID = 0 then
begin
ModalResult := mrNone;
//CanClose := false;
MessageModal(cInputBox_Msg20, ApplicationName, MB_ICONINFORMATION or MB_OK);
end;
end;
if Not (fsModal in FormState) then
Close;
//if CanClose then
// Close;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>" #####
procedure TF_InputBox.Act_BackExecute(Sender: TObject);
begin
FormView(Panel_ChoiceAddCompl.Height + 20, Panel_ChoiceAddCompl.Width);
Panel_ComponList.Visible := false;
Panel_ChoiceAddCompl.Visible := true;
end;
// ############################# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ############################
// #############################################################################
//
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.ListView_ComponsMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ShowComplectsHint;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.ListView_ComponsMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
ShowComplectsHint;
end;
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
procedure TF_InputBox.ListView_ComponsChange(Sender: TObject;
Item: TListItem; Change: TItemChange);
begin
//GDragPrevTickCount := GetTickCount;
GotoOnTree;
//GDragCurrTickCount := GetTickCount - GDragPrevTickCount;
//GDragCurrTickCount := GetTickCount - GDragPrevTickCount;
//MessageModal(Self.Handle, PChar(IntToStr(GetTickCount - GDragPrevTickCount)), '', MB_OK);
//GDragPrevTickCount := GetTickCount;
//Beep;
end;
procedure TF_InputBox.Button_CancelChoiceClick(Sender: TObject);
begin
//beep;
end;
procedure TF_InputBox.Act_PropertiesExecute(Sender: TObject);
begin
if GLastSelID <> 0 then
TF_Main(GForm).ShowCurrComponProperties;
end;
procedure TF_InputBox.btSkipClick(Sender: TObject);
begin
ModalResult := mrIgnore;
end;
procedure TF_InputBox.pnComponButtonsResize(Sender: TObject);
begin
SetMiddleControlChilds(TControl(Sender), TControl(Self));
end;
procedure TF_InputBox.btSkipAllClick(Sender: TObject);
begin
ModalResult := mrSkipAll;
end;
procedure TF_InputBox.ListView_ComponsDblClick(Sender: TObject);
begin
Act_Properties.Execute;
end;
end.