@@ -8,42 +8,28 @@ interface
88type
99 TToolBarItem = class (TDataModule)
1010 ImageListDocker: TImageList;
11- ActionListDocker: TActionList;
12- ToolBarItemDocker: TAction;
13- MainMenuDocker: TMainMenu;
14- Este21: TMenuItem;
15- procedure ActionListDockerExecute (Action: TBasicAction; var Handled: Boolean);
16- procedure ActionListDockerUpdate (Action: TBasicAction; var Handled: Boolean);
1711 private
12+ FImageStartIndex: Integer;
1813 class var FInstance: TToolBarItem;
1914 public
2015 class function GetInstance : TToolBarItem;
21- class procedure teste (ASender:TObject);
16+ class procedure RunWithDocker (ASender: TObject);
2217 class procedure Release ;
2318 constructor Create; reintroduce;
2419 end ;
2520
2621implementation
2722
2823uses
29- ToolsAPI, Vcl.Dialogs, Wrapper.DockerCompose, UtilityFunctions;
24+ ToolsAPI, Vcl.Dialogs, Wrapper.DockerCompose, UtilityFunctions, Wrapper.Docker ;
3025
3126{ %CLASSGROUP 'Vcl.Controls.TControl'}
3227{ $R *.dfm}
3328
34- procedure TToolBarItem.ActionListDockerExecute (Action: TBasicAction; var Handled: Boolean);
35- begin
36- ShowMessage(' Rodando com docker' );
37- end ;
38-
39- procedure TToolBarItem.ActionListDockerUpdate (Action: TBasicAction; var Handled: Boolean);
40- begin
41- // ShowMessage('Update');
42- end ;
43-
4429constructor TToolBarItem.Create;
4530begin
4631 inherited Create(nil );
32+ FImageStartIndex := NativeServices.AddImages(ImageListDocker, ' docker' );
4733end ;
4834
4935class function TToolBarItem.GetInstance : TToolBarItem;
@@ -60,15 +46,33 @@ class procedure TToolBarItem.Release;
6046 FInstance.Free;
6147end ;
6248
63- class procedure TToolBarItem.teste (ASender: TObject);
49+ class procedure TToolBarItem.RunWithDocker (ASender: TObject);
6450var
65- LDebugger: IOTADebuggerServices;
51+ LDebugger: IOTADebuggerServices;
52+ LMainMenu: TMainMenu;
53+ LMenuItem: TMenuItem;
6654begin
67- DockerComposeUp(ExtractFilePath(ActiveProject.FileName));
55+ if not DoDockerPreFlight then
56+ Exit;
57+
58+
59+
60+
61+ if not DockerComposeUp(ExtractFilePath(ActiveProject.FileName)) then
62+ begin
63+ MessageDlg(' Can'' t start docker compose or docker not started, verify output messages.' ,
64+ TMsgDlgType.mtError,
65+ [TMsgDlgBtn.mbOK],
66+ 1 );
67+ Exit;
68+ end ;
69+
70+ LMainMenu := NativeServices.MainMenu;
6871
69- ActiveProject.ProjectBuilder.BuildProject(TOTACompileMode.cmOTABuild, True, True);
72+ LMenuItem := LMainMenu.Items.Find(' Run' ).Find(' Run' );
73+ if Assigned(LMenuItem) then
74+ LMenuItem.Action.Execute;
7075
71- // (BorlandIDEServices as IOTADebuggerServices).CreateProcess('E:\Projetos\_playground\dosCommandTest\Win32\Debug\Project3.exe', '');
7276end ;
7377
7478initialization
0 commit comments