Skip to content

Commit 985de7b

Browse files
committed
bk/2024-06-18-1119
1 parent 0ada226 commit 985de7b

File tree

9 files changed

+104
-88
lines changed

9 files changed

+104
-88
lines changed

Src/AI/DelphiCopilot.AI.Gemini.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ function TDelphiCopilotAIGemini.GetResponse(const AQuestion: string): string;
7777
begin
7878
LPartsObj := LPartsArray.Items[j] as TJsonObject;
7979
LJsonText := LPartsObj.GetValue<string>('text');
80-
Result := LJsonText;
80+
Result := LJsonText.Trim;
8181
end;
8282
end;
8383
end;

Src/Chat/DelphiCopilot.Chat.View.dfm

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ object DelphiCopilotChatView: TDelphiCopilotChatView
138138
Left = 0
139139
Top = 3
140140
Width = 56
141-
Height = 20
141+
Height = 13
142142
Cursor = crHandPoint
143143
Hint = 'AI being used'
144144
Margins.Left = 0
@@ -149,7 +149,6 @@ object DelphiCopilotChatView: TDelphiCopilotChatView
149149
Caption = 'lbCurrentAI'
150150
PopupMenu = pMenuCurrentAI
151151
OnClick = lbCurrentAIClick
152-
ExplicitHeight = 13
153152
end
154153
object btnSend: TButton
155154
AlignWithMargins = True
@@ -166,23 +165,33 @@ object DelphiCopilotChatView: TDelphiCopilotChatView
166165
TabOrder = 0
167166
OnClick = btnSendClick
168167
end
169-
object btnUseCurrentUnitData: TButton
170-
AlignWithMargins = True
168+
object Panel9: TPanel
171169
Left = 653
172170
Top = 3
173171
Width = 208
174172
Height = 20
175-
Cursor = crHandPoint
176-
Hint = 'Use data from current unit in query'
177-
Margins.Top = 0
178-
Margins.Right = 0
179-
Margins.Bottom = 0
180173
Align = alRight
181-
Caption = '* Use data from current unit in query* '
182-
ImageIndex = 1
183-
Images = ImageList1
174+
BevelOuter = bvNone
175+
ParentBackground = False
184176
TabOrder = 1
185-
OnClick = btnUseCurrentUnitDataClick
177+
object btnUseCurrentUnitCode: TButton
178+
AlignWithMargins = True
179+
Left = 3
180+
Top = 0
181+
Width = 205
182+
Height = 20
183+
Cursor = crHandPoint
184+
Hint = 'Use data from current unit in query'
185+
Margins.Top = 0
186+
Margins.Right = 0
187+
Margins.Bottom = 0
188+
Align = alRight
189+
Caption = '* Use current unit code in query * '
190+
ImageIndex = 1
191+
Images = ImageList1
192+
TabOrder = 0
193+
OnClick = btnUseCurrentUnitCodeClick
194+
end
186195
end
187196
end
188197
end

Src/Chat/DelphiCopilot.Chat.View.pas

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ TDelphiCopilotChatView = class(TDockableForm)
6363
SaveContentToFile1: TMenuItem;
6464
btnCreateNewUnit: TSpeedButton;
6565
ClearContent1: TMenuItem;
66-
btnUseCurrentUnitData: TButton;
66+
Panel9: TPanel;
67+
btnUseCurrentUnitCode: TButton;
6768
procedure FormShow(Sender: TObject);
6869
procedure cBoxSizeFontKeyPress(Sender: TObject; var Key: Char);
6970
procedure Cut1Click(Sender: TObject);
@@ -85,7 +86,7 @@ TDelphiCopilotChatView = class(TDockableForm)
8586
procedure SaveContentToFile1Click(Sender: TObject);
8687
procedure btnCreateNewUnitClick(Sender: TObject);
8788
procedure ClearContent1Click(Sender: TObject);
88-
procedure btnUseCurrentUnitDataClick(Sender: TObject);
89+
procedure btnUseCurrentUnitCodeClick(Sender: TObject);
8990
procedure FormResize(Sender: TObject);
9091
private
9192
FChat: TDelphiCopilotChat;
@@ -230,19 +231,19 @@ procedure TDelphiCopilotChatView.FormClose(Sender: TObject; var Action: TCloseAc
230231

231232
procedure TDelphiCopilotChatView.FormResize(Sender: TObject);
232233
const
233-
CAPTION = 'Use data from current unit in query';
234+
CAPTION = 'Use current unit code in query';
234235
begin
235236
if(Self.Width > 450)then
236237
begin
237-
btnUseCurrentUnitData.Caption := CAPTION;
238-
btnUseCurrentUnitData.Width := 208;
239-
btnUseCurrentUnitData.ImageAlignment := TImageAlignment.iaLeft;
238+
btnUseCurrentUnitCode.Caption := CAPTION;
239+
btnUseCurrentUnitCode.Width := 208;
240+
btnUseCurrentUnitCode.ImageAlignment := TImageAlignment.iaLeft;
240241
end
241242
else
242243
begin
243-
btnUseCurrentUnitData.Caption := '';
244-
btnUseCurrentUnitData.Width := btnSend.Width;
245-
btnUseCurrentUnitData.ImageAlignment := TImageAlignment.iaCenter;
244+
btnUseCurrentUnitCode.Caption := '';
245+
btnUseCurrentUnitCode.Width := btnSend.Width;
246+
btnUseCurrentUnitCode.ImageAlignment := TImageAlignment.iaCenter;
246247
end;
247248
end;
248249

@@ -283,22 +284,22 @@ procedure TDelphiCopilotChatView.Paste1Click(Sender: TObject);
283284
mmReturn.PasteFromClipboard;
284285
end;
285286

286-
procedure TDelphiCopilotChatView.btnSendClick(Sender: TObject);
287-
begin
288-
Self.ProcessSend;
289-
end;
290-
291-
procedure TDelphiCopilotChatView.btnUseCurrentUnitDataClick(Sender: TObject);
287+
procedure TDelphiCopilotChatView.btnUseCurrentUnitCodeClick(Sender: TObject);
292288
begin
293289
Self.ChangeUseCurrentUnitData;
294290
end;
295291

296292
procedure TDelphiCopilotChatView.ChangeUseCurrentUnitData;
297293
begin
298-
if btnUseCurrentUnitData.ImageIndex = 0 then
299-
btnUseCurrentUnitData.ImageIndex := 1
294+
if btnUseCurrentUnitCode.ImageIndex = 0 then
295+
btnUseCurrentUnitCode.ImageIndex := 1
300296
else
301-
btnUseCurrentUnitData.ImageIndex := 0;
297+
btnUseCurrentUnitCode.ImageIndex := 0;
298+
end;
299+
300+
procedure TDelphiCopilotChatView.btnSendClick(Sender: TObject);
301+
begin
302+
Self.ProcessSend;
302303
end;
303304

304305
procedure TDelphiCopilotChatView.ProcessSend;
@@ -314,7 +315,7 @@ procedure TDelphiCopilotChatView.ProcessSend;
314315

315316
LQuestion := mmQuestion.Lines.Text;
316317

317-
if btnUseCurrentUnitData.ImageIndex = 1 then
318+
if btnUseCurrentUnitCode.ImageIndex = 1 then
318319
LQuestion := TUtilsOTA.GetSelectedBlockOrAllCodeUnit.Trim + sLineBreak + mmQuestion.Lines.Text;
319320

320321
LTask := TTask.Create(
@@ -383,14 +384,14 @@ procedure TDelphiCopilotChatView.AddResponseComplete(const AStrings: TStrings);
383384

384385
if not FCodeStarted then
385386
begin
386-
if (LLineStr.Trim = TC4DConsts.MARK_BEGIN_DELPHI) or (LLineStr.Trim = TC4DConsts.MARK_BEGIN_PASCAL) then
387+
if TUtils.CodeIdMarkBeginCode(LLineStr) then
387388
begin
388389
FCodeStarted := True;
389390
Continue;
390391
end;
391392
end;
392393

393-
if LLineStr.Trim = TC4DConsts.MARK_END then
394+
if LLineStr.Trim = TConsts.MARK_END then
394395
begin
395396
FCodeStarted := False;
396397
mmReturn.SelAttributes.Color := TUtilsOTA.ActiveThemeColorDefault;
@@ -409,7 +410,7 @@ procedure TDelphiCopilotChatView.AddResponseComplete(const AStrings: TStrings);
409410

410411
//Optional use of one of the following lines
411412
//mmReturn.Lines.Add(LLineStr);
412-
Self.AddResponseLine(LLineStr);
413+
Self.AddResponseLine(LLineStr); //.Replace(TConsts.MARK_BEGIN_PASCAL2, '', [rfReplaceAll, rfIgnoreCase])
413414
end;
414415
Self.Last;
415416
end;

Src/Consts/DelphiCopilot.Consts.pas

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
interface
44

55
type
6-
TC4DConsts = class
6+
TConsts = class
77
public const
88
SEMANTIC_VERSION = '1.0.0';
99
SEMANTIC_VERSION_LB = 'Version: ' + SEMANTIC_VERSION;
@@ -17,6 +17,7 @@ TC4DConsts = class
1717

1818
MARK_BEGIN_DELPHI = '```delphi';
1919
MARK_BEGIN_PASCAL = '```objectpascal';
20+
MARK_BEGIN_PASCAL2 = '``pascal';
2021
MARK_END = '```';
2122

2223
//SETTINGS

Src/MainMenu/DelphiCopilot.MainMenu.pas

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,24 @@ procedure TDelphiCopilotIDEMainMenu.CreateMenus;
5959
begin
6060
Self.CreateMenuCode4DelphiInIDEMenu;
6161

62-
Self.CreateSubMenu(TC4DConsts.MENU_IDE_CHAT_NAME,
63-
TC4DConsts.MENU_IDE_CHAT_CAPTION,
62+
Self.CreateSubMenu(TConsts.MENU_IDE_CHAT_NAME,
63+
TConsts.MENU_IDE_CHAT_CAPTION,
6464
TDelphiCopilotIDEMainMenuClicks.ChatClick,
6565
TDelphiCopilotIDEImageListMain.GetInstance.ImgIndexMessage
6666
);
6767

6868
Self.CreateSubMenu('C4DSeparator50', '-', nil);
6969

70-
Self.CreateSubMenu(TC4DConsts.MENU_IDE_SETTINGS_NAME,
71-
TC4DConsts.MENU_IDE_SETTINGS_CAPTION,
70+
Self.CreateSubMenu(TConsts.MENU_IDE_SETTINGS_NAME,
71+
TConsts.MENU_IDE_SETTINGS_CAPTION,
7272
TDelphiCopilotIDEMainMenuClicks.SettingsClick,
7373
TDelphiCopilotIDEImageListMain.GetInstance.ImgIndexGear
7474
);
7575

7676

7777
Self.CreateSubMenu('C4DSeparator90', '-', nil);
78-
Self.CreateSubMenu(TC4DConsts.MENU_IDE_ABOUT_NAME,
79-
TC4DConsts.MENU_IDE_ABOUT_CAPTION,
78+
Self.CreateSubMenu(TConsts.MENU_IDE_ABOUT_NAME,
79+
TConsts.MENU_IDE_ABOUT_CAPTION,
8080
TDelphiCopilotIDEMainMenuClicks.AboutClick,
8181
TDelphiCopilotIDEImageListMain.GetInstance.ImgIndexC4D_Logo
8282
);
@@ -87,13 +87,13 @@ procedure TDelphiCopilotIDEMainMenu.CreateMenuCode4DelphiInIDEMenu;
8787
LMenuItemTabs: TMenuItem;
8888
LMenuItemTools: TMenuItem;
8989
begin
90-
FMenuItemC4D := TMenuItem(FMainMenuIDE.FindComponent(TC4DConsts.ITEM_MENU_Code4D_NAME));
90+
FMenuItemC4D := TMenuItem(FMainMenuIDE.FindComponent(TConsts.ITEM_MENU_Code4D_NAME));
9191
if(Assigned(FMenuItemC4D))then
9292
FreeAndNil(FMenuItemC4D);
9393

9494
FMenuItemC4D := TMenuItem.Create(FMainMenuIDE);
95-
FMenuItemC4D.Name := TC4DConsts.ITEM_MENU_Code4D_NAME;
96-
FMenuItemC4D.Caption := TC4DConsts.ITEM_MENU_Code4D_CAPTION;
95+
FMenuItemC4D.Name := TConsts.ITEM_MENU_Code4D_NAME;
96+
FMenuItemC4D.Caption := TConsts.ITEM_MENU_Code4D_CAPTION;
9797

9898
LMenuItemTabs := FMainMenuIDE.Items.Find('Tabs');
9999
if(Assigned(LMenuItemTabs))then

Src/Settings/DelphiCopilot.Settings.pas

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ procedure TDelphiCopilotSettings.LoadDefaults;
8383
FColorHighlightCodeDelphiUse := False;
8484
FColorHighlightCodeDelphi := clNone;
8585

86-
FBaseUrlGemini := TC4DConsts.BASE_URL_GEMINI_DEFAULT;
87-
FModelGemini := TC4DConsts.MODEL_GEMINI_DEFAULT;
86+
FBaseUrlGemini := TConsts.BASE_URL_GEMINI_DEFAULT;
87+
FModelGemini := TConsts.MODEL_GEMINI_DEFAULT;
8888
FApiKeyGemini := '';
8989

90-
FBaseUrlOpenAI := TC4DConsts.BASE_URL_OPEN_AI;
90+
FBaseUrlOpenAI := TConsts.BASE_URL_OPEN_AI;
9191
FModelOpenAI := 'gpt-3.5-turbo';
9292
FApiKeyOpenAI := '';
9393
end;
@@ -100,7 +100,7 @@ procedure TDelphiCopilotSettings.SaveData;
100100
try
101101
LReg.CloseKey;
102102
LReg.RootKey := HKEY_CURRENT_USER;
103-
if not(LReg.OpenKey(TC4DConsts.KEY_SETTINGS_IN_WINDOWS_REGISTRY, True))then
103+
if not(LReg.OpenKey(TConsts.KEY_SETTINGS_IN_WINDOWS_REGISTRY, True))then
104104
raise Exception.Create('Unable to save settings to Windows registry');
105105

106106
LReg.WriteInteger(FIELD_AIDefault, Integer(FAIDefault));
@@ -131,7 +131,7 @@ procedure TDelphiCopilotSettings.LoadData;
131131
LReg.CloseKey;
132132
LReg.RootKey := HKEY_CURRENT_USER;
133133

134-
if not(LReg.OpenKey(TC4DConsts.KEY_SETTINGS_IN_WINDOWS_REGISTRY, False)) then
134+
if not(LReg.OpenKey(TConsts.KEY_SETTINGS_IN_WINDOWS_REGISTRY, False)) then
135135
Exit;
136136

137137
if LReg.ValueExists(FIELD_AIDefault) then

Src/Test/Test.pas

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,30 @@
33
interface
44

55
uses
6-
SysUtils, Classes;
6+
System.SysUtils,System.StrUtils, System.Classes;
77

88
type
9-
// Classe Cliente
10-
TCliente = class
9+
TCliente = class
1110
private
1211
FId: Integer;
13-
FNome: String;
14-
FTelefone: String;
12+
FNome: String;
13+
FTelefone: String;
1514
FCidade: String;
1615
public
17-
// Propriedades
18-
property Id: Integer read FId write FId;
19-
property Nome: String read FNome write FNome;
20-
property Telefone: String read FTelefone write FTelefone;
21-
property Cidade: String read FCidade write FCidade;
22-
23-
// Construtor
24-
constructor Create(const AId: Integer; const ANome: String; const ATelefone: String; const ACidade: String);
16+
property Id: Integer read FId write FId;
17+
property Nome: String read FNome write FNome;
18+
property Telefone: String read FTelefone write FTelefone;
19+
property Cidade: String read FCidade write FCidade;
20+
constructor Create(const AId: Integer; const ANome: String; const ATelefone: String; const ACidade: String);
2521
end;
2622

2723
implementation
2824

29-
// Construtor da classe Cliente
30-
constructor TCliente.Create(const AId: Integer; const ANome: String; const ATelefone: String; const ACidade: String);
25+
constructor TCliente.Create( const AId : Integer; const ANome : String; const ATelefone: String; const ACidade: String);
3126
begin
3227
FId := AId;
33-
FNome := ANome;
34-
FTelefone := ATelefone;
28+
FNome := ANome;
29+
FTelefone := ATelefone;
3530
FCidade := ACidade;
3631
end;
3732

0 commit comments

Comments
 (0)