Skip to content

Commit 210f547

Browse files
committed
bk/2025-01-13-1518
1 parent 218277c commit 210f547

File tree

7 files changed

+195
-399
lines changed

7 files changed

+195
-399
lines changed

Package/C4DWizard.dproj

Lines changed: 121 additions & 373 deletions
Large diffs are not rendered by default.

Package/C4DWizard.res

0 Bytes
Binary file not shown.

Src/C4D.Wizard.Register.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ interface
1818
C4D.Wizard.IDE.ShortCut.KeyboardBinding,
1919
C4D.Wizard.Notes.View;
2020

21-
procedure Register;
21+
procedure register;
2222

2323
implementation
2424

@@ -35,7 +35,7 @@ procedure RegisterAll;
3535
C4D.Wizard.Notes.View.RegisterSelf;
3636
end;
3737

38-
procedure Register;
38+
procedure register;
3939
begin
4040
RegisterAll;
4141
end;

Src/IDE/PopupMenuDesigner/C4D.Wizard.IDE.PopupMenuDesigner.ComponentSel.pas

Lines changed: 58 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ interface
1515
TC4DWizardIDEPopupMenuDesignerComponentSel = class
1616
private
1717
class procedure CopyNamesClick(Sender: TObject);
18+
class procedure AddItem(const AItem: IMenuItem; const ACaption: WideString;
19+
const AName: string = ''; AOnClick: TNotifyEvent = nil);
20+
class procedure CopyDataFieldsClick(Sender: TObject);
21+
class procedure CopyDataFields;
1822
public
1923
class procedure AddSubItems(const AItem: IMenuItem);
2024
class procedure CopyNames;
@@ -27,7 +31,14 @@ implementation
2731

2832
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.AddSubItems(const AItem: IMenuItem);
2933
begin
30-
AItem.AddItem('Copy names of selected components', TextToShortCut(''), False, True, Self.CopyNamesClick, 0, 'C4DWizardIDEPopupMenuDesignerComponentSel1');
34+
Self.AddItem(AItem, 'Copy names of selected components', 'C4DWizardNamesComponentSel1', Self.CopyNamesClick);
35+
Self.AddItem(AItem, 'Copy DataField of selected components', 'C4DWizardDataFieldComponentSel1', Self.CopyDataFieldsClick);
36+
end;
37+
38+
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.AddItem(const AItem: IMenuItem; const ACaption: WideString;
39+
const AName: string = ''; AOnClick: TNotifyEvent = nil);
40+
begin
41+
AItem.AddItem(ACaption, TextToShortCut(''), False, True, AOnClick, 0, AName);
3142
end;
3243

3344
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.CopyNamesClick(Sender: TObject);
@@ -41,27 +52,67 @@ class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.CopyNames;
4152
LIOTAFormEditor: IOTAFormEditor;
4253
LIOTAComponent: IOTAComponent;
4354
LStrList: TStringList;
44-
LNomeComponente: String;
55+
LNameComponent: String;
56+
LSelCount: Integer;
57+
begin
58+
LIOTAModule := (BorlandIDEServices as IOTAModuleServices).CurrentModule;
59+
if not Assigned(LIOTAModule) then
60+
Exit;
61+
62+
LIOTAFormEditor := TC4DWizardUtilsOTA.GetIOTAFormEditor(LIOTAModule);
63+
if not Assigned(LIOTAFormEditor) then
64+
Exit;
65+
66+
LStrList := TStringList.Create;
67+
try
68+
for LSelCount := 0 to Pred(LIOTAFormEditor.GetSelCount) do
69+
begin
70+
LIOTAComponent := LIOTAFormEditor.GetSelComponent(LSelCount);
71+
LIOTAComponent.GetPropValueByName('Name', LNameComponent);
72+
LStrList.Add(LNameComponent);
73+
end;
74+
75+
if not Trim(LStrList.Text).IsEmpty then
76+
Clipboard.AsText := LStrList.Text;
77+
finally
78+
LStrList.Free;
79+
end;
80+
end;
81+
82+
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.CopyDataFieldsClick(Sender: TObject);
83+
begin
84+
Self.CopyDataFields;
85+
end;
86+
87+
class procedure TC4DWizardIDEPopupMenuDesignerComponentSel.CopyDataFields;
88+
var
89+
LIOTAModule: IOTAModule;
90+
LIOTAFormEditor: IOTAFormEditor;
91+
LIOTAComponent: IOTAComponent;
92+
LStrList: TStringList;
93+
LNameComponent: String;
4594
LSelCount: Integer;
4695
begin
4796
LIOTAModule := (BorlandIDEServices as IOTAModuleServices).CurrentModule;
48-
if(not Assigned(LIOTAModule))then
97+
if not Assigned(LIOTAModule) then
4998
Exit;
5099

51100
LIOTAFormEditor := TC4DWizardUtilsOTA.GetIOTAFormEditor(LIOTAModule);
52-
if(not Assigned(LIOTAFormEditor))then
101+
if not Assigned(LIOTAFormEditor) then
53102
Exit;
54103

55104
LStrList := TStringList.Create;
56105
try
57106
for LSelCount := 0 to Pred(LIOTAFormEditor.GetSelCount) do
58107
begin
59108
LIOTAComponent := LIOTAFormEditor.GetSelComponent(LSelCount);
60-
LIOTAComponent.GetPropValueByName('Name', LNomeComponente);
61-
LStrList.Add(LNomeComponente)
109+
LIOTAComponent.GetPropValueByName('DataField', LNameComponent);
110+
if not LNameComponent.Trim.IsEmpty then
111+
LStrList.Add(LNameComponent);
62112
end;
63113

64-
Clipboard.AsText := LStrList.Text;
114+
if not Trim(LStrList.Text).IsEmpty then
115+
Clipboard.AsText := LStrList.Text;
65116
finally
66117
LStrList.Free;
67118
end;

Src/Utils/C4D.Wizard.Utils.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -994,8 +994,8 @@ class procedure TC4DWizardUtils.ShowMsgInMemo(AText: string);
994994
begin
995995
LC4DWizardViewMemo := TC4DWizardViewMemo.Create(Nil);
996996
try
997-
LC4DWizardViewMemo.mmMensagem.Lines.Clear;
998-
LC4DWizardViewMemo.mmMensagem.Lines.Add(AText);
997+
LC4DWizardViewMemo.mmMessage.Lines.Clear;
998+
LC4DWizardViewMemo.mmMessage.Lines.Add(AText);
999999
LC4DWizardViewMemo.ShowModal;
10001000
finally
10011001
LC4DWizardViewMemo.Free

Src/View/C4D.Wizard.View.Memo.dfm

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ object C4DWizardViewMemo: TC4DWizardViewMemo
2929
Color = clWindow
3030
ParentBackground = False
3131
TabOrder = 0
32-
object mmMensagem: TMemo
32+
object mmMessage: TMemo
3333
AlignWithMargins = True
3434
Left = 10
3535
Top = 10
@@ -49,7 +49,7 @@ object C4DWizardViewMemo: TC4DWizardViewMemo
4949
ParentFont = False
5050
ScrollBars = ssVertical
5151
TabOrder = 0
52-
OnKeyDown = mmMensagemKeyDown
52+
OnKeyDown = mmMessageKeyDown
5353
ExplicitLeft = 18
5454
ExplicitTop = 9
5555
end
@@ -70,7 +70,6 @@ object C4DWizardViewMemo: TC4DWizardViewMemo
7070
Padding.Bottom = 2
7171
ParentBackground = False
7272
TabOrder = 1
73-
ExplicitTop = 317
7473
object btnOK: TButton
7574
Left = 723
7675
Top = 2

Src/View/C4D.Wizard.View.Memo.pas

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,14 @@ TC4DWizardViewMemo = class(TForm)
1616
pnMemo: TPanel;
1717
pnButtons: TPanel;
1818
btnOK: TButton;
19-
mmMensagem: TMemo;
19+
mmMessage: TMemo;
2020
procedure btnOKClick(Sender: TObject);
2121
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
2222
procedure FormCreate(Sender: TObject);
23-
procedure mmMensagemKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
23+
procedure mmMessageKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
2424
private
2525
protected
26-
2726
public
28-
2927
end;
3028

3129
implementation
@@ -43,20 +41,20 @@ procedure TC4DWizardViewMemo.FormCreate(Sender: TObject);
4341

4442
procedure TC4DWizardViewMemo.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
4543
begin
46-
case(Key)of
44+
case Key of
4745
VK_F4:
48-
if(ssAlt in Shift)then
49-
Key := 0;
46+
if ssAlt in Shift then
47+
Key := 0;
5048
VK_ESCAPE:
51-
if(Shift = [])then
52-
btnOK.Click;
49+
if Shift = [] then
50+
btnOK.Click;
5351
end;
5452
end;
5553

56-
procedure TC4DWizardViewMemo.mmMensagemKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
54+
procedure TC4DWizardViewMemo.mmMessageKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
5755
begin
58-
if(Key = $41)and(Shift = [ssCtrl])then
59-
mmMensagem.SelectAll;
56+
if (Key = $41) and (Shift = [ssCtrl]) then
57+
mmMessage.SelectAll;
6058
end;
6159

6260
procedure TC4DWizardViewMemo.btnOKClick(Sender: TObject);

0 commit comments

Comments
 (0)