├── acbrscriptgui_app.ico
├── acbrscriptgui_app.lpi
├── acbrscriptgui_app.lpr
├── acbrscriptgui_app.lps
├── acbrscriptgui_app.res
├── images
├── icon_a.jpg
├── icon_b.jpg
├── icon_c.jpg
├── lazarus_brasil.png
├── paw.png
├── powered_by.png
└── powered_by_48x48.png
└── src
├── acbrscriptgui.common.pas
├── acbrscriptgui.model.downloadf.lfm
├── acbrscriptgui.model.downloadf.pas
├── acbrscriptgui.view.main.lfm
└── acbrscriptgui.view.main.pas
/acbrscriptgui_app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/acbrscriptgui_app.ico
--------------------------------------------------------------------------------
/acbrscriptgui_app.lpi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
--------------------------------------------------------------------------------
/acbrscriptgui_app.lpr:
--------------------------------------------------------------------------------
1 | program acbrscriptgui_app;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}{$IFDEF UseCThreads}
7 | cthreads,
8 | {$ENDIF}{$ENDIF}
9 | Interfaces, // this includes the LCL widgetset
10 | Forms,
11 | acbrscriptgui.view.main,
12 | acbrscriptgui.common,
13 | acbrscriptgui.model.downloadf;
14 |
15 | {$R *.res}
16 |
17 | begin
18 | RequireDerivedFormResource:=True;
19 | Application.Scaled:=True;
20 | Application.Initialize;
21 | Application.CreateForm(TFormMain, FormMain);
22 | //Application.CreateForm(TFormTestListbox, FormTestListbox);
23 | //Application.CreateForm(TForm2, Form2);
24 | Application.Run;
25 | end.
26 |
27 |
--------------------------------------------------------------------------------
/acbrscriptgui_app.lps:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
--------------------------------------------------------------------------------
/acbrscriptgui_app.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/acbrscriptgui_app.res
--------------------------------------------------------------------------------
/images/icon_a.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/icon_a.jpg
--------------------------------------------------------------------------------
/images/icon_b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/icon_b.jpg
--------------------------------------------------------------------------------
/images/icon_c.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/icon_c.jpg
--------------------------------------------------------------------------------
/images/lazarus_brasil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/lazarus_brasil.png
--------------------------------------------------------------------------------
/images/paw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/paw.png
--------------------------------------------------------------------------------
/images/powered_by.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/powered_by.png
--------------------------------------------------------------------------------
/images/powered_by_48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arirod/acbrscriptgui/c2875fe7f9fda06617194a0f32e39304fd4e38c6/images/powered_by_48x48.png
--------------------------------------------------------------------------------
/src/acbrscriptgui.common.pas:
--------------------------------------------------------------------------------
1 | unit acbrscriptgui.common;
2 |
3 | {$mode objfpc} {$H+}
4 |
5 | interface
6 |
7 | uses
8 | {$IfNDef LINUX} Windows, {$EndIf} //TTimeZoneInformation
9 | Classes,
10 | SysUtils,
11 | DB,
12 | Types, // TSize
13 | Forms,
14 | LCLIntf,
15 | LCLType,
16 | registry,
17 | Math,
18 | Controls,
19 | DBCtrls,
20 | Graphics,
21 | StdCtrls,
22 | Dialogs,
23 | IniFiles;
24 |
25 | { procedures }
26 | procedure Aviso(const m: string; const t: cardinal = 1000);
27 | procedure gradientHorizontal(Canvas: TCanvas; Rect: TRect; FromColor, ToColor: TColor);
28 | procedure gradientVertical(Canvas: TCanvas; Rect: TRect; FromColor, ToColor: TColor);
29 | procedure DialogBoxAutoClose(const ACaption, APrompt: string; DuracaoEmSegundos: integer);
30 | procedure gravarIni(sArquivo, sSecao, sComponente, sValor: string);
31 | procedure AbreForm(aClasseForm: TComponentClass; aForm: TForm);
32 |
33 | { functions }
34 | function ler_ini(sInifile, sSecao, sChave: string): string;
35 |
36 | { ** implementation ** }
37 | implementation
38 |
39 |
40 | procedure AbreForm(aClasseForm: TComponentClass; aForm: TForm);
41 | begin
42 | Application.CreateForm(aClasseForm, aForm);
43 | try
44 | aForm.ShowModal;
45 | finally
46 | FreeAndNil(aForm);
47 | end;
48 | end;
49 |
50 |
51 | procedure Aviso(const m: string; const t: cardinal = 1000);
52 | var
53 | P: TPoint;
54 | R: TRect;
55 | X: integer;
56 | begin
57 | GetCursorPos(P);
58 | with THintWindow.Create(Application) do
59 | try
60 | // Application.HintColor := clSkyBlue;
61 | R := CalcHintRect(Screen.Width, m, nil);
62 | X := R.Right - R.Left + 1;
63 | R.Left := P.X;
64 | R.Right := R.Left + X;
65 |
66 | X := R.Bottom - R.Top + 1;
67 | R.Top := P.Y - X;
68 | R.Bottom := R.Top + X;
69 |
70 | ActivateHint(R, m);
71 | Update;
72 | Sleep(t);
73 | finally
74 | Free;
75 | end;
76 | end;
77 |
78 | procedure gradientHorizontal(Canvas: TCanvas; Rect: TRect; FromColor, ToColor: TColor);
79 | var
80 | X: integer;
81 | dr, dg, DB: extended;
82 |
83 | C1, C2: TColor;
84 | r1, r2, g1, g2, b1, b2: byte;
85 | R, G, B: byte;
86 | cnt: integer;
87 | begin
88 | C1 := FromColor;
89 | r1 := GetRValue(C1);
90 | g1 := GetGValue(C1);
91 | b1 := GetBValue(C1);
92 |
93 | C2 := ToColor;
94 | r2 := GetRValue(C2);
95 | g2 := GetGValue(C2);
96 | b2 := GetBValue(C2);
97 |
98 | dr := (r2 - r1) / Rect.Right - Rect.Left;
99 | dg := (g2 - g1) / Rect.Right - Rect.Left;
100 | DB := (b2 - b1) / Rect.Right - Rect.Left;
101 |
102 | cnt := 0;
103 | for X := Rect.Left to Rect.Right - 1 do
104 | begin
105 | R := r1 + Ceil(dr * cnt);
106 | G := g1 + Ceil(dg * cnt);
107 | B := b1 + Ceil(DB * cnt);
108 |
109 | Canvas.Pen.Color := RGB(R, G, B);
110 | Canvas.MoveTo(X, Rect.Top);
111 | Canvas.LineTo(X, Rect.Bottom);
112 | Inc(cnt);
113 | end;
114 | end;
115 |
116 | procedure gradientVertical(Canvas: TCanvas; Rect: TRect; FromColor, ToColor: TColor);
117 | var
118 | Y: integer;
119 | dr, dg, DB: extended;
120 | C1, C2: TColor;
121 | r1, r2, g1, g2, b1, b2: byte;
122 | R, G, B: byte;
123 | cnt: integer;
124 | begin
125 | C1 := FromColor;
126 | r1 := GetRValue(C1);
127 | g1 := GetGValue(C1);
128 | b1 := GetBValue(C1);
129 |
130 | C2 := ToColor;
131 | r2 := GetRValue(C2);
132 | g2 := GetGValue(C2);
133 | b2 := GetBValue(C2);
134 |
135 | dr := (r2 - r1) / Rect.Bottom - Rect.Top;
136 | dg := (g2 - g1) / Rect.Bottom - Rect.Top;
137 | DB := (b2 - b1) / Rect.Bottom - Rect.Top;
138 |
139 | cnt := 0;
140 | for Y := Rect.Top to Rect.Bottom - 1 do
141 | begin
142 | R := r1 + Ceil(dr * cnt);
143 | G := g1 + Ceil(dg * cnt);
144 | B := b1 + Ceil(DB * cnt);
145 |
146 | Canvas.Pen.Color := RGB(R, G, B);
147 | Canvas.MoveTo(Rect.Left, Y);
148 | Canvas.LineTo(Rect.Right, Y);
149 | Inc(cnt);
150 | end;
151 | end;
152 |
153 |
154 |
155 | // http://stackoverflow.com/questions/4472215/close-delphi-dialog-after-x-seconds
156 |
157 | procedure dialogBoxAutoClose(const ACaption, APrompt: string; DuracaoEmSegundos: integer);
158 | var
159 | Form: TForm;
160 | Prompt: TLabel;
161 | DialogUnits: TPoint;
162 | ButtonTop, ButtonWidth, ButtonHeight: integer;
163 | nX, Lines: integer;
164 |
165 | function GetAveCharSize(Canvas: TCanvas): TPoint;
166 | var
167 | i: integer;
168 | Buffer: array [0 .. 51] of char;
169 | begin
170 | for i := 0 to 25 do
171 | Buffer[i] := Chr(i + Ord('A'));
172 | for i := 0 to 25 do
173 | Buffer[i + 26] := Chr(i + Ord('a'));
174 | GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
175 | Result.X := Result.X div 52;
176 | end;
177 |
178 | begin
179 | Form := TForm.Create(Application);
180 | Lines := 0;
181 |
182 | for nX := 1 to Length(APrompt) do
183 | if APrompt[nX] = #13 then
184 | Inc(Lines);
185 |
186 | with Form do
187 | try
188 | Font.Name := 'Arial'; // mcg
189 | Font.Size := 10; // mcg
190 | Font.Style := [fsBold]+[fsItalic];
191 | Canvas.Font := Font;
192 | DialogUnits := GetAveCharSize(Canvas);
193 | BorderStyle := bsSingle;
194 | Color := clYellow;
195 | BorderStyle := bsNone{bsToolWindow};
196 | FormStyle := fsStayOnTop;
197 | BorderIcons := [];
198 | Caption := ACaption;
199 | ClientWidth := MulDiv(Screen.Width div 4, DialogUnits.X, 4);
200 | ClientHeight := MulDiv(23 + (Lines * 10), DialogUnits.Y, 8);
201 | Position := poScreenCenter;
202 | Position := poOwnerFormCenter;
203 |
204 | Prompt := TLabel.Create(Form);
205 | with Prompt do
206 | begin
207 | Parent := Form;
208 | AutoSize := True;
209 |
210 | Alignment := taCenter;
211 | Align:=alClient;
212 | BorderSpacing.Top:=15;
213 |
214 | Left := MulDiv(8, DialogUnits.X, 4);
215 | Top := MulDiv(8, DialogUnits.Y, 8);
216 | Caption := APrompt;
217 | end;
218 |
219 | Form.Width := Prompt.Width + Prompt.Left + 300; // mcg fix
220 |
221 | Show;
222 | Application.ProcessMessages;
223 | finally
224 | Sleep(DuracaoEmSegundos * 1000);
225 | Form.Free;
226 | end;
227 | end;
228 |
229 |
230 | procedure gravarIni(sArquivo, sSecao, sComponente, sValor: string);
231 | var
232 | iArq: TIniFile;
233 | begin
234 | iArq := TIniFile.Create(ExtractFilePath(Application.ExeName) + sArquivo);
235 | iArq.WriteString(sSecao, sComponente, sValor);
236 | iArq.Free;
237 | end;
238 |
239 | function ler_ini(sInifile, sSecao, sChave: string): string;
240 | var
241 | Ini: TIniFile;
242 | begin
243 | Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + sInifile);
244 | try
245 | Result := Ini.ReadString(sSecao, sChave, '');
246 | finally
247 | Ini.Free
248 | end;
249 | end;
250 |
251 |
252 | // ********************** Final da Lib ***************
253 | end.
254 |
--------------------------------------------------------------------------------
/src/acbrscriptgui.model.downloadf.lfm:
--------------------------------------------------------------------------------
1 | object FormDownload: TFormDownload
2 | Left = 619
3 | Height = 458
4 | Top = 374
5 | Width = 656
6 | BorderStyle = bsDialog
7 | Caption = 'FormDownload'
8 | ClientHeight = 458
9 | ClientWidth = 656
10 | OnCreate = FormCreate
11 | OnShow = FormShow
12 | Position = poOwnerFormCenter
13 | LCLVersion = '2.0.10.0'
14 | object SVNUpdateListView: TListView
15 | Left = 6
16 | Height = 350
17 | Top = 102
18 | Width = 644
19 | Align = alClient
20 | BorderSpacing.Around = 6
21 | Color = clBlack
22 | Columns = <
23 | item
24 | Width = 75
25 | end
26 | item
27 | Width = 567
28 | end>
29 | Font.CharSet = ANSI_CHARSET
30 | Font.Color = clSilver
31 | Font.Height = -11
32 | Font.Name = 'Courier New'
33 | Font.Pitch = fpFixed
34 | Font.Quality = fqDraft
35 | ParentFont = False
36 | RowSelect = True
37 | ScrollBars = ssAutoBoth
38 | SortType = stText
39 | TabOrder = 0
40 | ViewStyle = vsReport
41 | end
42 | object panelTop: TPanel
43 | Left = 0
44 | Height = 96
45 | Top = 0
46 | Width = 656
47 | Align = alTop
48 | ClientHeight = 96
49 | ClientWidth = 656
50 | TabOrder = 1
51 | object labelRepositoryURL: TLabel
52 | Left = 8
53 | Height = 13
54 | Top = 16
55 | Width = 276
56 | Caption = 'svn://svn.code.sf.net/p/acbr/code/trunk2'
57 | Font.CharSet = ANSI_CHARSET
58 | Font.Color = clGreen
59 | Font.Height = -12
60 | Font.Name = 'Segoe UI'
61 | Font.Pitch = fpVariable
62 | Font.Quality = fqDraft
63 | Font.Style = [fsBold, fsItalic]
64 | ParentColor = False
65 | ParentFont = False
66 | end
67 | object btnDownload: TSpeedButton
68 | Left = 504
69 | Height = 48
70 | Top = 39
71 | Width = 144
72 | Caption = 'Download'
73 | Color = 9934847
74 | Flat = True
75 | Glyph.Data = {
76 | 36090000424D3609000000000000360000002800000018000000180000000100
77 | 2000000000000009000064000000640000000000000000000000000000000000
78 | 0000000000000000000000000000000000000000000000000000000000000000
79 | 0000000000000000000000000000000000000000000000000000000000000000
80 | 0000000000000000000000000000000000000000000000000000000000000000
81 | 0000000000000000000000000000000000000000000000000000000000000000
82 | 0000000000000000000000000000000000000000000000000000000000000000
83 | 0000000000000000000000000000000000000000000000000000000000000000
84 | 0000000000000000000000000000000000000000000000000000000000000000
85 | 0000000000000000000000000000000000000000000000000000000000000000
86 | 0000000000000000000000000000000000000000000000000000000000000000
87 | 0000000000000000000000000000000000000000000000000000000000000000
88 | 000000000000B5513F71B4524070000000000000000000000000000000000000
89 | 0000000000000000000000000000000000000000000000000000000000000000
90 | 0000000000000000000000000000000000000000000000000000000000000000
91 | 0000B4513F55B5513FFDB5513FFCB4523E4E0000000000000000000000000000
92 | 0000000000000000000000000000000000000000000000000000000000000000
93 | 000000000000000000000000000000000000000000000000000000000000B44F
94 | 3F3DB5513FF7B5513FFFB5513FFFB5513FF5B54F413700000000000000000000
95 | 0000000000000000000000000000000000000000000000000000000000000000
96 | 0000000000000000000000000000000000000000000000000000B4513E29B551
97 | 3FEDB5513FFFB5513FFFB5513FFFB5513FFFB5513FEAB84E4024000000000000
98 | 0000000000000000000000000000000000000000000000000000000000000000
99 | 0000000000000000000000000000000000000000000000000000B650406CB651
100 | 4088B5513EC4B5513FFFB5513FFFB5513EC4B6514088B650406C000000000000
101 | 0000000000000000000000000000000000000000000000000000000000000000
102 | 000000000000FFFFFF01FBDEBC3DFADEBA6BFBDFBA77FBDFBA77FBDFBA77FBDF
103 | BA77CB7F66BBB5513FFFB5513FFFCB7F66BBFBDFBA77FBDFBA77FBDFBA77FBDF
104 | BA77FBDEBB74FCDEB94DFFBFBF04000000000000000000000000000000000000
105 | 0000FFDBB60EFBDEBBBFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
106 | BBFFD8987DFFB5513FFFB5513FFFD8987DFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
107 | BBFFFBDEBBFFFBDEBBFFFBDEBBCBFFE3B8120000000000000000000000000000
108 | 0000FCDEBC94FBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
109 | BBFFD8987DFFB5513FFFB5513FFFD8987DFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
110 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFCDEBB9A0000000000000000000000000000
111 | 0000FBDDBBE4FBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
112 | BBFFD8987DFFB5513FFFB5513FFFD8987DFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
113 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBE60000000000000000000000000000
114 | 0000FBDEBBE9FBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
115 | BBFFD8987DFFB5513FFFB5513FFFD8987DFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
116 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDDBBE40000000000000000000000000000
117 | 0000FADEBAA0FBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
118 | BBFFD8987DFFB5513FFFB5513FFFD8987DFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
119 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFCDEBB9A0000000000000000000000000000
120 | 0000FFDEBC17FBDEBBD3FBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
121 | BBFFE8B99AFFD69379FFD69379FFE8B99AFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
122 | BBFFFBDEBBFFFBDEBBFFFBDEBBCBFFE3B8120000000000000000000000000000
123 | 000000000000FFD5BF0CFCDFBC58FBDEBBFBFBDEBBFFFBDEBBFFFBDEBBFFFBDE
124 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
125 | BBFFFBDEBBB7FCDEB94DFFBFBF04000000000000000000000000000000000000
126 | 0000000000000000000000000000FBDEBBF8FBDEBBFFFBDEBBFFFBDEBBFFFBDE
127 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDE
128 | BBFFFCDDBA590000000000000000000000000000000000000000000000000000
129 | 0000000000000000000000000000FBDEBBCBFBDEBBFFFBDEBBFFFBDEBBFFFBDE
130 | BBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFBDEBBFFFCDE
131 | BBDDFFD8C40D0000000000000000000000000000000000000000000000000000
132 | 0000000000000000000000000000FCDEBA55FBDEBBFFFBDEBBFFFBDEBBFFFBDE
133 | BBFFFBDEBBFFFBDEBBFFFBDEBBCAFADFBB70FBDEBBD7FBDEBBE8FBDEBBB4F7DF
134 | B720000000000000000000000000000000000000000000000000000000000000
135 | 000000000000000000000000000000000000FADDBB71FBDEBBF9FBDEBBFFFBDE
136 | BBFFFBDEBBFFFBDEBBC8FFE3BD1B000000000000000000000000000000000000
137 | 0000000000000000000000000000000000000000000000000000000000000000
138 | 00000000000000000000000000000000000000000000FFDEBD1FFADEBB6DFADD
139 | BB71FBDFBA3FFFFFFF0100000000000000000000000000000000000000000000
140 | 0000000000000000000000000000000000000000000000000000000000000000
141 | 0000000000000000000000000000000000000000000000000000000000000000
142 | 0000000000000000000000000000000000000000000000000000000000000000
143 | 0000000000000000000000000000000000000000000000000000000000000000
144 | 0000000000000000000000000000000000000000000000000000000000000000
145 | 0000000000000000000000000000000000000000000000000000000000000000
146 | 0000000000000000000000000000000000000000000000000000000000000000
147 | 0000000000000000000000000000000000000000000000000000000000000000
148 | 0000000000000000000000000000000000000000000000000000000000000000
149 | 0000000000000000000000000000000000000000000000000000
150 | }
151 | Transparent = False
152 | OnClick = btnDownloadClick
153 | end
154 | object labelDownloadPath: TLabel
155 | AnchorSideLeft.Control = DownloadPath
156 | AnchorSideBottom.Control = btnDownload
157 | AnchorSideBottom.Side = asrBottom
158 | Left = -7
159 | Height = 13
160 | Top = 49
161 | Width = 192
162 | Anchors = []
163 | Caption = 'Informe e local de Download'
164 | Font.CharSet = ANSI_CHARSET
165 | Font.Color = clNavy
166 | Font.Height = -12
167 | Font.Name = 'Segoe UI'
168 | Font.Pitch = fpVariable
169 | Font.Quality = fqDraft
170 | Font.Style = [fsBold, fsItalic]
171 | ParentColor = False
172 | ParentFont = False
173 | end
174 | object DownloadPath: TEditButton
175 | AnchorSideLeft.Control = labelDownloadPath
176 | AnchorSideTop.Control = labelDownloadPath
177 | AnchorSideTop.Side = asrBottom
178 | Left = 8
179 | Height = 27
180 | Top = 62
181 | Width = 464
182 | Anchors = []
183 | ButtonWidth = 23
184 | Glyph.Data = {
185 | 36040000424D3604000000000000360000002800000010000000100000000100
186 | 2000000000000004000064000000640000000000000000000000000000000000
187 | 0000000000000000000000000000000000000000000000000000000000000000
188 | 0000000000000000000000000000000000000000000000000000000000000000
189 | 0000000000000000000000000000000000000000000000000000000000000000
190 | 0000000000000000000000000000575147A1554F492A00000000000000000000
191 | 0000000000000000000000000000000000000000000000000000000000000000
192 | 00000000000000000000554F45B54F4737FF5752499900000000000000000000
193 | 0000000000000000000000000000000000000000000000000000000000000000
194 | 000000000000565147A14F4737FF565148C00000000000000000000000000000
195 | 0000000000005A5A5A1161616181616161DA616161FD616161EC616161A36060
196 | 602D60605D68524B3EFF565249BA000000000000000000000000000000000000
197 | 000064646421616161DD988062FFD9A563FFF4B464FFE5AB64FFB18E63FF6B66
198 | 61F9616161F35F5F5F7B00000000000000000000000000000000000000005555
199 | 5503616161CEB59062FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFDBA5
200 | 63FF696560F96363632C00000000000000000000000000000000000000006161
201 | 6154857561FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
202 | 64FFB59063FF616161A600000000000000000000000000000000000000006262
203 | 6295B69163FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
204 | 64FFE6AC64FF616161E700000000000000000000000000000000000000006060
205 | 60A4C19763FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
206 | 64FFF1B264FF616161F700000000000000000000000000000000000000006262
207 | 6285AB8A62FFF6B564FFF6BB70FFF6B565FFF6B564FFF6B564FFF6BB70FFF6B5
208 | 64FFDBA664FF616161D700000000000000000000000000000000000000006161
209 | 6132726B61FEF0B264FFF8C37FFFF9D19EFFF7C584FFF9CC94FFF9CC96FFF6B5
210 | 65FF9B8162FF6161618300000000000000000000000000000000000000000000
211 | 000061616196907B62FFF1B264FFF7B769FFF7BF79FFF6BA6EFFF6B564FFBB93
212 | 62FF626261DA5B5B5B0E00000000000000000000000000000000000000000000
213 | 00006666660561616199716A62FEA78862FFC29863FFB38F62FF827361FF6161
214 | 61CF646464210000000000000000000000000000000000000000000000000000
215 | 000000000000000000006060602D62626285616161A8606060976262624E8080
216 | 8002000000000000000000000000000000000000000000000000000000000000
217 | 0000000000000000000000000000000000000000000000000000000000000000
218 | 0000000000000000000000000000000000000000000000000000
219 | }
220 | MaxLength = 0
221 | NumGlyphs = 1
222 | OnButtonClick = DownloadPathButtonClick
223 | PasswordChar = #0
224 | TabOrder = 0
225 | Text = 'D:\dev-lazarus\lab_acbr\acbrscriptGUI\ex1\temp_svn'
226 | end
227 | end
228 | end
229 |
--------------------------------------------------------------------------------
/src/acbrscriptgui.model.downloadf.pas:
--------------------------------------------------------------------------------
1 | {
2 | SVNClasses
3 | Copyright (C) 2008 Darius Blaszijk
4 | This source is free software; you can redistribute it and/or modify it under
5 | the terms of the GNU General Public License as published by the Free
6 | Software Foundation; either version 2 of the License, or (at your option)
7 | any later version.
8 |
9 | This code is distributed in the hope that it will be useful, but WITHOUT ANY
10 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12 | details.
13 | }
14 |
15 | unit acbrscriptgui.model.downloadf;
16 |
17 | {$mode objfpc}{$H+}
18 |
19 | interface
20 |
21 |
22 | //////svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/applications/fpsvnsync
23 |
24 | uses
25 | Classes,
26 | SysUtils,
27 | Forms,
28 | Controls,
29 | Graphics,
30 | Dialogs,
31 | StdCtrls,
32 | ExtCtrls,
33 | EditBtn,
34 | ComCtrls,
35 | Buttons,
36 | ///
37 | LCLProc, /// debugln
38 | SVNClasses, /// incluir o path no projeto ..\components\lazsvnpkg
39 | UTF8Process,
40 | Process,
41 | FileUtil;
42 |
43 | type
44 |
45 | { TFormDownload }
46 |
47 | TFormDownload = class(TForm)
48 | btnDownload: TSpeedButton;
49 | DownloadPath: TEditButton;
50 | labelDownloadPath: TLabel;
51 | labelRepositoryURL: TLabel;
52 | panelTop: TPanel;
53 | SVNUpdateListView: TListView;
54 | procedure btnDownloadClick(Sender: TObject);
55 | procedure DownloadPathButtonClick(Sender: TObject);
56 | procedure FormCreate(Sender: TObject);
57 | procedure FormShow(Sender: TObject);
58 | private
59 |
60 | public
61 | { public declarations }
62 | procedure Execute({%H-}Data: PtrInt);
63 | procedure ProcessSVNUpdateOutput(var MemStream: TMemoryStream; var BytesRead: longint);
64 | end;
65 |
66 | var
67 | FormDownload: TFormDownload;
68 |
69 | implementation
70 |
71 | {$R *.lfm}
72 |
73 | procedure TFormDownload.FormCreate(Sender: TObject);
74 | begin
75 | SetColumn(SVNUpdateListView, 0, 75, rsAction);
76 | SetColumn(SVNUpdateListView, 1, 400, rsPath);
77 | end;
78 |
79 | procedure TFormDownload.btnDownloadClick(Sender: TObject);
80 | begin
81 | Application.QueueAsyncCall(@Execute, 0);
82 | end;
83 |
84 | procedure TFormDownload.DownloadPathButtonClick(Sender: TObject);
85 | var
86 | sDir: string;
87 | begin
88 | SelectDirectory('Escolha a Pasta para Download', '', sDir);
89 | DownloadPath.Text := LowerCase(sDir);
90 | end;
91 |
92 |
93 |
94 | procedure TFormDownload.FormShow(Sender: TObject);
95 | begin
96 | Caption := Format(rsLazarusSVNUpdate, [labelRepositoryURL.Caption]);
97 | end;
98 |
99 | procedure TFormDownload.Execute(Data: PtrInt);
100 | var
101 | AProcess: TProcessUTF8;
102 | n: longint;
103 | MemStream: TMemoryStream;
104 | BytesRead: longint;
105 | begin
106 | SVNUpdateListView.Clear;
107 |
108 | MemStream := TMemoryStream.Create;
109 | BytesRead := 0;
110 | { /home/aeondc/lazarus-projetos/acbr/trunk2/ }
111 | AProcess := TProcessUTF8.Create(nil);
112 | try
113 | AProcess.Executable := {$IfNDef LINUX} '"svn.exe"' {$Else} 'svn'{$EndIf};
114 | AProcess.Parameters.Add('checkout');
115 | AProcess.Parameters.Add(labelRepositoryURL.Caption);
116 | AProcess.Parameters.Add(DownloadPath.Text);
117 | AProcess.Options := [poUsePipes, poStdErrToOutput];
118 | AProcess.ShowWindow := swoHIDE;
119 | AProcess.Execute;
120 | ////
121 | while AProcess.Running do
122 | begin
123 | MemStream.SetSize(BytesRead + READ_BYTES);
124 | n := AProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES);
125 | if n > 0 then
126 | begin
127 | Inc(BytesRead, n);
128 | ProcessSVNUpdateOutput(MemStream, BytesRead);
129 | end
130 | else
131 | Sleep(100);
132 | end;
133 | ///
134 | repeat
135 | MemStream.SetSize(BytesRead + READ_BYTES);
136 | n := AProcess.Output.Read((MemStream.Memory + BytesRead)^, READ_BYTES);
137 | if n > 0 then
138 | begin
139 | Inc(BytesRead, n);
140 | ProcessSVNUpdateOutput(MemStream, BytesRead);
141 | end;
142 | until n <= 0;
143 |
144 | finally
145 | AProcess.Free;
146 | MemStream.Free;
147 | end;
148 | end;
149 |
150 | procedure TFormDownload.ProcessSVNUpdateOutput(var MemStream: TMemoryStream; var BytesRead: longint);
151 | var
152 | S: TStringList;
153 | n: longint;
154 | i: integer;
155 | str: string;
156 | begin
157 | Memstream.SetSize(BytesRead);
158 | S := TStringList.Create;
159 | S.LoadFromStream(MemStream);
160 |
161 | for n := 0 to S.Count - 1 do
162 | with SVNUpdateListView.Items.Add do
163 | begin
164 | //find position of first space character
165 | i := pos(' ', S[n]);
166 | str := Copy(S[n], 1, i - 1);
167 |
168 | if str = 'A' then
169 | str := rsAdded;
170 | if str = 'D' then
171 | str := rsDeleted;
172 | if str = 'U' then
173 | str := rsUpdated;
174 | if str = 'C' then
175 | str := rsConflict;
176 | if str = 'G' then
177 | str := rsMerged;
178 | Caption := str;
179 |
180 | Subitems.Add(Trim(Copy(S[n], i, Length(S[n]) - i + 1)));
181 | end;
182 |
183 | S.Free;
184 | BytesRead := 0;
185 | MemStream.Clear;
186 |
187 | SVNUpdateListView.Items[SVNUpdateListView.Items.Count - 1].MakeVisible(True);
188 |
189 | //repaint the listview
190 | Application.ProcessMessages;
191 | end;
192 |
193 |
194 |
195 | end.
196 |
--------------------------------------------------------------------------------
/src/acbrscriptgui.view.main.lfm:
--------------------------------------------------------------------------------
1 | object FormMain: TFormMain
2 | Left = 558
3 | Height = 502
4 | Top = 267
5 | Width = 772
6 | BorderIcons = [biSystemMenu]
7 | BorderStyle = bsSingle
8 | Caption = 'Instalação Automatizada Suite ACBr - Projeto Contribuidor'
9 | ClientHeight = 502
10 | ClientWidth = 772
11 | KeyPreview = True
12 | OnClose = FormClose
13 | OnDestroy = FormDestroy
14 | OnShow = FormShow
15 | LCLVersion = '2.0.10.0'
16 | object OutputPanel: TPanel
17 | AnchorSideLeft.Control = LeftPanel
18 | AnchorSideLeft.Side = asrBottom
19 | AnchorSideTop.Control = midTopPanel
20 | AnchorSideTop.Side = asrBottom
21 | AnchorSideRight.Control = Owner
22 | AnchorSideRight.Side = asrBottom
23 | AnchorSideBottom.Control = BottomPanel
24 | Left = 45
25 | Height = 308
26 | Top = 140
27 | Width = 727
28 | Anchors = [akBottom]
29 | BevelOuter = bvNone
30 | ClientHeight = 308
31 | ClientWidth = 727
32 | Color = clWhite
33 | ParentColor = False
34 | TabOrder = 3
35 | object outputScreen: TMemo
36 | Left = 0
37 | Height = 308
38 | Top = 0
39 | Width = 727
40 | Align = alClient
41 | Lines.Strings = (
42 | 'outputScreen'
43 | )
44 | OnChange = outputScreenChange
45 | TabOrder = 0
46 | end
47 | end
48 | object pnlTop: TPanel
49 | AnchorSideLeft.Control = LeftPanel
50 | AnchorSideLeft.Side = asrBottom
51 | AnchorSideTop.Control = Owner
52 | AnchorSideRight.Control = Owner
53 | AnchorSideRight.Side = asrBottom
54 | Left = 45
55 | Height = 50
56 | Top = 0
57 | Width = 727
58 | Anchors = [akTop, akLeft, akRight]
59 | BevelOuter = bvNone
60 | Caption = 'pnlTop'
61 | ClientHeight = 50
62 | ClientWidth = 727
63 | Color = clGreen
64 | ParentColor = False
65 | TabOrder = 0
66 | object PaintBox1: TPaintBox
67 | Left = 0
68 | Height = 50
69 | Top = 0
70 | Width = 531
71 | Align = alClient
72 | Color = clBlack
73 | ParentColor = False
74 | OnPaint = PaintBox1Paint
75 | end
76 | object StaticText2: TLabel
77 | Left = 531
78 | Height = 50
79 | Top = 0
80 | Width = 196
81 | Align = alRight
82 | Caption = '( not ( -noGui ) )'
83 | Color = 477959
84 | Font.Color = clInfoBk
85 | Font.Height = -43
86 | Font.Name = 'League Gothic'
87 | ParentColor = False
88 | ParentFont = False
89 | Transparent = False
90 | end
91 | end
92 | object midTopPanel: TPanel
93 | AnchorSideLeft.Control = LeftPanel
94 | AnchorSideLeft.Side = asrBottom
95 | AnchorSideTop.Control = pnlTop
96 | AnchorSideTop.Side = asrBottom
97 | Left = 45
98 | Height = 90
99 | Top = 50
100 | Width = 727
101 | Anchors = [akTop, akLeft, akRight]
102 | BevelOuter = bvNone
103 | ClientHeight = 90
104 | ClientWidth = 727
105 | Color = clMoneyGreen
106 | ParentColor = False
107 | TabOrder = 2
108 | object edtPathACBr: TEditButton
109 | AnchorSideTop.Control = lblACBrPath
110 | AnchorSideTop.Side = asrBottom
111 | Left = 16
112 | Height = 27
113 | Top = 13
114 | Width = 397
115 | ButtonWidth = 23
116 | Glyph.Data = {
117 | 36040000424D3604000000000000360000002800000010000000100000000100
118 | 2000000000000004000064000000640000000000000000000000000000000000
119 | 0000000000000000000000000000000000000000000000000000000000000000
120 | 0000000000000000000000000000000000000000000000000000000000000000
121 | 0000000000000000000000000000000000000000000000000000000000000000
122 | 0000000000000000000000000000575147A1554F492A00000000000000000000
123 | 0000000000000000000000000000000000000000000000000000000000000000
124 | 00000000000000000000554F45B54F4737FF5752499900000000000000000000
125 | 0000000000000000000000000000000000000000000000000000000000000000
126 | 000000000000565147A14F4737FF565148C00000000000000000000000000000
127 | 0000000000005A5A5A1161616181616161DA616161FD616161EC616161A36060
128 | 602D60605D68524B3EFF565249BA000000000000000000000000000000000000
129 | 000064646421616161DD988062FFD9A563FFF4B464FFE5AB64FFB18E63FF6B66
130 | 61F9616161F35F5F5F7B00000000000000000000000000000000000000005555
131 | 5503616161CEB59062FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFDBA5
132 | 63FF696560F96363632C00000000000000000000000000000000000000006161
133 | 6154857561FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
134 | 64FFB59063FF616161A600000000000000000000000000000000000000006262
135 | 6295B69163FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
136 | 64FFE6AC64FF616161E700000000000000000000000000000000000000006060
137 | 60A4C19763FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
138 | 64FFF1B264FF616161F700000000000000000000000000000000000000006262
139 | 6285AB8A62FFF6B564FFF6BB70FFF6B565FFF6B564FFF6B564FFF6BB70FFF6B5
140 | 64FFDBA664FF616161D700000000000000000000000000000000000000006161
141 | 6132726B61FEF0B264FFF8C37FFFF9D19EFFF7C584FFF9CC94FFF9CC96FFF6B5
142 | 65FF9B8162FF6161618300000000000000000000000000000000000000000000
143 | 000061616196907B62FFF1B264FFF7B769FFF7BF79FFF6BA6EFFF6B564FFBB93
144 | 62FF626261DA5B5B5B0E00000000000000000000000000000000000000000000
145 | 00006666660561616199716A62FEA78862FFC29863FFB38F62FF827361FF6161
146 | 61CF646464210000000000000000000000000000000000000000000000000000
147 | 000000000000000000006060602D62626285616161A8606060976262624E8080
148 | 8002000000000000000000000000000000000000000000000000000000000000
149 | 0000000000000000000000000000000000000000000000000000000000000000
150 | 0000000000000000000000000000000000000000000000000000
151 | }
152 | MaxLength = 0
153 | NumGlyphs = 1
154 | OnButtonClick = edtPathACBrButtonClick
155 | PasswordChar = #0
156 | TabOrder = 0
157 | end
158 | object edtPathLazarus: TEditButton
159 | AnchorSideTop.Control = lblLazarusPath
160 | AnchorSideTop.Side = asrBottom
161 | Left = 16
162 | Height = 27
163 | Top = 53
164 | Width = 397
165 | ButtonWidth = 23
166 | Glyph.Data = {
167 | 36040000424D3604000000000000360000002800000010000000100000000100
168 | 2000000000000004000064000000640000000000000000000000000000000000
169 | 0000000000000000000000000000000000000000000000000000000000000000
170 | 0000000000000000000000000000000000000000000000000000000000000000
171 | 0000000000000000000000000000000000000000000000000000000000000000
172 | 0000000000000000000000000000575147A1554F492A00000000000000000000
173 | 0000000000000000000000000000000000000000000000000000000000000000
174 | 00000000000000000000554F45B54F4737FF5752499900000000000000000000
175 | 0000000000000000000000000000000000000000000000000000000000000000
176 | 000000000000565147A14F4737FF565148C00000000000000000000000000000
177 | 0000000000005A5A5A1161616181616161DA616161FD616161EC616161A36060
178 | 602D60605D68524B3EFF565249BA000000000000000000000000000000000000
179 | 000064646421616161DD988062FFD9A563FFF4B464FFE5AB64FFB18E63FF6B66
180 | 61F9616161F35F5F5F7B00000000000000000000000000000000000000005555
181 | 5503616161CEB59062FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFDBA5
182 | 63FF696560F96363632C00000000000000000000000000000000000000006161
183 | 6154857561FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
184 | 64FFB59063FF616161A600000000000000000000000000000000000000006262
185 | 6295B69163FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
186 | 64FFE6AC64FF616161E700000000000000000000000000000000000000006060
187 | 60A4C19763FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B564FFF6B5
188 | 64FFF1B264FF616161F700000000000000000000000000000000000000006262
189 | 6285AB8A62FFF6B564FFF6BB70FFF6B565FFF6B564FFF6B564FFF6BB70FFF6B5
190 | 64FFDBA664FF616161D700000000000000000000000000000000000000006161
191 | 6132726B61FEF0B264FFF8C37FFFF9D19EFFF7C584FFF9CC94FFF9CC96FFF6B5
192 | 65FF9B8162FF6161618300000000000000000000000000000000000000000000
193 | 000061616196907B62FFF1B264FFF7B769FFF7BF79FFF6BA6EFFF6B564FFBB93
194 | 62FF626261DA5B5B5B0E00000000000000000000000000000000000000000000
195 | 00006666660561616199716A62FEA78862FFC29863FFB38F62FF827361FF6161
196 | 61CF646464210000000000000000000000000000000000000000000000000000
197 | 000000000000000000006060602D62626285616161A8606060976262624E8080
198 | 8002000000000000000000000000000000000000000000000000000000000000
199 | 0000000000000000000000000000000000000000000000000000000000000000
200 | 0000000000000000000000000000000000000000000000000000
201 | }
202 | MaxLength = 0
203 | NumGlyphs = 1
204 | OnButtonClick = edtPathLazarusButtonClick
205 | PasswordChar = #0
206 | TabOrder = 1
207 | end
208 | object lblACBrPath: TLabel
209 | AnchorSideTop.Control = midTopPanel
210 | Left = 16
211 | Height = 13
212 | Top = 0
213 | Width = 264
214 | Caption = 'Entre com o caminho da pasta do ACBr'
215 | Font.CharSet = ANSI_CHARSET
216 | Font.Color = clBlack
217 | Font.Height = -12
218 | Font.Name = 'Segoe UI'
219 | Font.Pitch = fpVariable
220 | Font.Quality = fqDraft
221 | Font.Style = [fsBold, fsItalic]
222 | ParentColor = False
223 | ParentFont = False
224 | end
225 | object lblLazarusPath: TLabel
226 | AnchorSideTop.Control = edtPathACBr
227 | AnchorSideTop.Side = asrBottom
228 | Left = 16
229 | Height = 13
230 | Top = 40
231 | Width = 385
232 | Caption = 'Entre com o caminho da pasta da sua instalação Lazarus'
233 | Font.CharSet = ANSI_CHARSET
234 | Font.Color = clBlack
235 | Font.Height = -12
236 | Font.Name = 'Segoe UI'
237 | Font.Pitch = fpVariable
238 | Font.Quality = fqDraft
239 | Font.Style = [fsBold, fsItalic]
240 | ParentColor = False
241 | ParentFont = False
242 | end
243 | object buttonDownload: TSpeedButton
244 | Left = 480
245 | Height = 69
246 | Top = 7
247 | Width = 219
248 | Action = ActAbreForm
249 | Font.CharSet = ANSI_CHARSET
250 | Font.Color = clBlack
251 | Font.Height = -12
252 | Font.Name = 'Segoe UI'
253 | Font.Pitch = fpVariable
254 | Font.Quality = fqDraft
255 | Font.Style = [fsBold, fsItalic]
256 | ParentFont = False
257 | end
258 | object buttonValidatePathACBr: TSpeedButton
259 | Left = 424
260 | Height = 22
261 | Top = 16
262 | Width = 23
263 | Action = ActACBrCheckInstall
264 | Flat = True
265 | Images = ImageList1
266 | ImageIndex = 3
267 | end
268 | object buttonValidatePathLazarus: TSpeedButton
269 | Left = 424
270 | Height = 22
271 | Top = 56
272 | Width = 23
273 | Action = ActLazarusCheckInstall
274 | Flat = True
275 | Images = ImageList1
276 | ImageIndex = 3
277 | end
278 | end
279 | object LeftPanel: TPanel
280 | AnchorSideLeft.Control = midTopPanel
281 | AnchorSideLeft.Side = asrBottom
282 | AnchorSideTop.Control = pnlTop
283 | Left = 0
284 | Height = 502
285 | Top = 0
286 | Width = 45
287 | Align = alLeft
288 | Anchors = [akBottom]
289 | BevelOuter = bvNone
290 | ClientHeight = 502
291 | ClientWidth = 45
292 | Color = clGreen
293 | ParentColor = False
294 | TabOrder = 1
295 | object PaintBox2: TPaintBox
296 | Left = 0
297 | Height = 502
298 | Top = 0
299 | Width = 45
300 | Align = alClient
301 | Color = clMaroon
302 | ParentColor = False
303 | OnPaint = PaintBox2Paint
304 | end
305 | object verticalTitle: TLabel
306 | Left = 0
307 | Height = 312
308 | Top = 104
309 | Width = 81
310 | AutoSize = False
311 | Caption = 'ACBr Install'
312 | Font.CharSet = ANSI_CHARSET
313 | Font.Color = clWhite
314 | Font.Height = -37
315 | Font.Name = 'Segoe UI'
316 | Font.Orientation = 900
317 | Font.Pitch = fpVariable
318 | Font.Quality = fqDraft
319 | Font.Style = [fsBold]
320 | Layout = tlBottom
321 | ParentColor = False
322 | ParentFont = False
323 | end
324 | object imagePowered: TImage
325 | Left = 2
326 | Height = 40
327 | Top = 8
328 | Width = 40
329 | Picture.Data = {
330 | 1754506F727461626C654E6574776F726B47726170686963BB16000089504E47
331 | 0D0A1A0A0000000D49484452000000300000003008060000005702F987000016
332 | 82494441546843AD5907581457D77E67B6EFB24B597A470145145114D188626F
333 | C1823D96086AD4C45863D75812258AC62FC92F6A6CB19758128C0D8D6245C58E
334 | 80202220D29B6C6F33FF3377914FD4E433DFFFDF877986DDB973EF79EF39E73D
335 | 6529FC3F0C6FEF56F67AA366744DD5CB40914C1E4A83F633998C8E268356CC82
336 | 855024D3F3F9FC0A86619F1BF4EA87727BE76C56AA3C589BFFA0F6FFBA3DF5DF
337 | 2ED0BC79846F71F1D301148F3F49F5AAB2B55822A35C3DFC20B5B18554660B99
338 | DC1612992D580650A96AA1E12E752DB4EA57A82C2B8041AF65A572FBFBAC85DD
339 | E1E2E47DEAF9F3FB05FF8D2CFF1840B3661FC95F96642ED0A8EB1629EC94B487
340 | 973F025A84A159F396503AD8A2B0A81CDCA947766885D6C14DA1379A5051598B
341 | 6BB7329057580AB38585C5C2A2ACE4395EE43E4065491E34AA6A462451AC91FB
342 | BAAFADC8CC54FF13201F0E202C4C20CDCE8D35E8B45BE4B6F65478E4C7080C0A
343 | 45C7F6C1E8D0B6391CECE4C8CD7F89C3275200B018DCBF33040201AEA43E42EB
344 | E0266811E88B656B77C36C6610161A80BEDDDAE18FF369B89F918FECCC7BC8BE
345 | 770E5A750D2314C9A6EAB5FEBF00774D1F02E48300B878B76AA2AA2ECC601946
346 | 1C1ADE136DC2A340D31404021EBE5B3A197B7F4DC6F38212A2813A950626B319
347 | 83FA76864422C29D07D9086CE205994C8C4D3B938806562D188F078FF3A0B457
348 | A0B9BF27F61EBB8CE42B8FF0FCC94D3C4BBF0450B4C65EE1D6B2B4F449FE7F02
349 | F11F01B87807F5AC78F934D9D9D5871A30E2730CEED7090A1B2992CE5D8780CF
350 | C3ECA9C3515E51032F0F17982D169C3875056515D588EED319363231F83C1E8C
351 | 663336EF4C82C16882A3D20E2BE68DC79E231770FB412E4A2B5E91391ABD190C
352 | 4B81CF13E0DAE944D45614B00ECE3E3D2A4B9F5DFA3B107F0780963BB8C4AA6B
353 | CAB707044760D0B0585818062C63C1FA95D3F0EDF77BC0B22C222342D02EB419
354 | 761F3E038B85019FCF23F7BEDD3BA0A8A402B7EF6561EA8441B8792713E753EE
355 | A25754189AFA7AE0594109DAB50E44DA835C6C3B900C0B03F48D6A8BB1315D30
356 | 6DE96E5C3DB7174539A9B0B1758953D596EE06C0BC0FC85F0290DBB9C469EA2A
357 | 7744741B8EE0D008FCBC7E261886C5F79B8F60F8A028E4E4BEC0DD47D9904944
358 | F862E2509CBE908A66FE5EF0F674C5A9E4EB0868EA85972515789C950F371725
359 | 7A7409C3A69DBF61D99CF138929482EBB733A1D61A603233309959F8FBB963CD
360 | C2B158B739095F4D1D88D8AFB623FDDE553CBE7E10328543ACAAB6E2970F06A0
361 | F468D6BDBA38E7CF8E3D4661C890A1C87A5A802F270D424D8D0A1DC28270F3CE
362 | 6374EBDC169B779D004DD3181A1D05C6C2E0F1933C3CCBCB8756A3415555250A
363 | 0BF3613659E0E0E80AA14406163CF8FA786350BF8FE0A4B4C3C56B0F70E0F865
364 | D8DADA20317E1A16C5EF477A7611FA46B541A7F6CDB174FD6F28797E0F8FAEEE
365 | 83AD4B93A8DAD2DCCB6F83784703AEBECD7DCB5FE4E6F9068651BDA3C762FDF2
366 | C9E424771E3C83358B2761C5BA5DC424DC5D9538F3672AA1488BD988DBA95770
367 | 68FF2EA854751089C5E0F3F9E0F3056059C06432C26C36C36830402C91A26397
368 | 01F00D0C45AB1681487F5280AD093370FC742AF61DBF020B4361D19731309A2C
369 | 58B7F51C289A8FCC9B47F122E73AAB700EF0AB2DC96A142FDE021026104B736B
370 | 6D144A6954F46408F934C4223E96CC1A0D0F5747582C16C2381CD370D4F8E265
371 | 298E1FD983337F9C8042A1C0987171183A7C14689A07A3C90CAD4E0FADCE00AD
372 | 560F8DD6803A951A572F9DC5B594D3D0EB3468111A89B69DFA63E5FC09D0E98D
373 | 58BEE110C2430331774A34464E4F845A6B02450B40F304B8796A23D475652A83
374 | A6A9F24D8A6D044020964FA4296CEF3F7A11047C1A023E05A1800791908FEE9D
375 | 43317C605722D8A61DC7A0AEABC2CAC53321168BB175FB5EF8FBFB4324121093
376 | 32992DD0EB0D50A9B504845AAD875AAB2320B84BA737A0ACA4040777AD83D964
377 | 44BF11B3313CA61FC60D8D227EF6E9EC4454BFD203149F68800340F38448DE37
378 | 070CC34C32E9553B5E9B520300777777696959B92AB85D5F7AFCA77198FDD920
379 | 184D26EC3C780E994FF221160BE0E4A080442C44EAD50B3872601BA6CD9887E8
380 | E8C150C86D602B9742221183C7A361349AA0D6E870E0C03EE4646763E4D849E4
381 | B35AC369C2AA159DDE444E3DF3D16D5C3B7F186D3F1A0C9F66E1305958302C4D
382 | 2E503C0280E209C0E309919F710919378F30AE2E4EF2E2E2622D07A20180506C
383 | B35C2892AC983EFF7BCC99128D25F17BE0EFE786F95F0C436A5A068E9DBA0AA9
384 | 58889B57CFE0FCE9A3589D9088A0E64190CB65C87F968DF0F0F6707373865020
385 | 8046A343ED2B15AA6B5F6160FF5EE8D8390A43467C0AB55A07B5560F1D67563A
386 | 23F40633F446332ACA5EE2D4E18D68DEA617FC43BABD03402014E1AB49BD70FC
387 | FC636C4F980ABD5EF5B559AFFEA60180D2B3B547F5CBF4C2B6519FD01BE317E3
388 | F6836CA4DDCB864040C3CDC51EABE68FC7D2F89DA8A978899D89DF6265FC26F8
389 | F8FA9280C631C89205B3316BD62CF4E9D30B12B118AFEAD4C87A928381D17DA1
390 | AAAB23DA8E8CEA8D989171440BC42F7426E80D26188C66184C16D4D454E2CCA1
391 | 04440E9806B9D2072C4BC3CBC3098BA747C3D3D51ECF8B6A50565987D94BBEC7
392 | 9DE4448BD233C0BBF2457631D180D4C67E1A45F313A306CFC194B13DE0E26487
393 | 0D9B8F41C8E741E920C79AC5B158F8CD166C5A3B0763E366A17D878E90C924B0
394 | B59142A19061DAE471A8AEAA825C6E8379F316E0E38143909C7C169F4D8A6DC4
395 | 7AAD42C33162DC175613D219A1339809008E718C6606457999B875713F7A8F5E
396 | 819F133E87A79B038E9FB987D0601FCC5D9384ADAB8763E9C6B3389C38038CD9
397 | 304DABAED94200486CEC6F38B907766C193118F67231D62F9F000A2CB29FBD44
398 | AB205FFC7EFA3A96CCFF1C2CCB60FA57AB48F0B2914920B791C0462645ECD818
399 | 9497971161C562096EA63D80DE60C4B0210350F4A2B00104455118357E3ABC9B
400 | B6243EC065AA06A3054F1EDD82977F5B9227A5242502348DF53FEE86A3832DB6
401 | 1EBC8A5D0913B0EBD81D8C1B1C869F0FDFC2EEADF128CB7F784DAFAD89A41C1D
402 | 1DE555D5D5B5E13D3FA395AEBEE0510CA4623E4283FD1014E089F4AC3C643DC9
403 | C6A1EDDF62E6E27FC1CE560199540499540C1BA9185ACD2B4C9BF409C70E0D82
404 | 6EDFB51F4D039AE1EB25F371F5F2C5465A681DF611FA0C1C670550AF819387FE
405 | 05FF961FC1DD2F14068311E70EAE4254CC4224ED5E86E9CB0FE1DBB9835058F2
406 | 0AAF547AEC3C968692C22CDC38B98E611DECED28B983E724A3AE6E5BB7A14BD0
407 | AAB907EC6D25B87D2F1B7C1ED540A3C9BF6D855824C1B0B19F1316928845904A
408 | 840444D6E37BD8B0764523217D7CFDF0C3A69DF871E33A5CBC70A6D1B3761D7B
409 | A04BAFA1C4FE3967BE927C0405CFD249ECE83B7A2909646917F7C06C3662FE8A
410 | 1F316F723F3C7E5A82953F9D271AE20697839DDF3B1B22B17C126742EB5C7D42
411 | E64D9BB3127327F78346A3476E7E09366C3941620118130E6F5B86715357C0D1
412 | C9091291006202C27A951617E2DBAFE7BC93A64CFDE22BE8F43AECDEB1A9E199
413 | 5C6187D82FBE06450B09FB64A5DFC695B307EA9F53E8113317621B25349A3AA4
414 | 1C8B47AF4FBE83DCD60E46330D9AE603949534FDBC1CF0EB8E6F509C772F8112
415 | 8A64496E4DC2A2B724FE8487990578595A89D9930760EE8A1D440B9ABA0A9C3F
416 | 9188D82FD740241490602516F209082E4A73B4B968762C349AC685D4E87193D1
417 | A57B7FDC4D4B4561413E64360AF8346D019A2F268EABD5EAB07FEB72180DFA06
418 | 80521B0744C5CC230C74FED07244F49F0585D2AB3E9009A0B49362D1D4EE78F8
419 | A4040BE6CDE5B2D5244A2CB3CDF409EA1A74EAE83602808B9EE1A14DB1287E2F
420 | 01F034FD32F2B3EF6278EC42C24A4221DF0A44C827FF7357415E360EEFDD8AAA
421 | 4AAB23B78F88C488319F81C717C04858C60C83C164BD73B46934A330FF29CE1C
422 | 4D6CA4398AA2D177EC6A92F45DFD3D019E011168DF75285C1CEDD1C4C711E307
423 | 87E1E4C54C1C3BF7185977FF40DEA3F399945022AF0E0A8FB19F3E350E4D7D9C
424 | E0E3A184979B921427976F6660CAE43880B5A05BFFF1C4A49E66DE429BF65D21
425 | 1470A7CF235519579070155A556529245219E4723BE2D4660B03B3D942043799
426 | CC301A39BAB4DE4F1EFE09E5258D0B2E0260CC1AB0340F0F2EEF03CD17E07ACA
427 | 59E26B5ABD11767209F625DDC3C59BB92878928AF4EB076A281E4F606EDF673A
428 | CFCEC99B084AB116F078808BA39C68E0D0CF2BE1ED1F8290F63DC9E73DFFB300
429 | A1E1DD505CF814A1ED23D13AAC33844201783467A79C8D52C4C9588685996160
430 | 315B60B23004009723994C1652039CD89B80BADAF2461A70F26886B0EE712485
431 | 78967E11A5F90FD175D8726242DC6819E08A511F87422616E2D3991B907A32C1
432 | 6205D07706CFDEC91B2C63B68200039A6241D32C920FAF41CB76BDE1DF229C00
433 | 38BE7B35741A6B74E586B3AB17A145370F6F703CCF5D04006BED3E941617E045
434 | FE53D45497832F14C3AB49086CEC9C5153598E1B17F6E355752979C7D5BB255A
435 | 771E0D10617928CA4DC3D3FBA7D07BDCF7A0685E23A02D035D71E5CA552B00A1
436 | 445E151C31C2C1D537F4DF0038101C008AC5CD73DB60A7744368A78FC1A329E4
437 | 3CBA82FBA9A7DF619DF0CEFD1011D90F144D734D09BC28C8414AF2AFA8AE2869
438 | 3497A3CBCE7DC6C3C9239000D46AD5E0F125246163590A2CC5231A7892960455
439 | 6D313E1AB8E0CD94AD61AD97B9B7907E7D7F352592DA3D6ED2AA47B05F700FB0
440 | 8C89D4BC00674A0C288A41665A12D435A588EC3F9900A060C1D11DCBC809BF3D
441 | 068D9E0137CF26A8AD2EC7D13DEB49AAFCBE21104AD0F5E3A9902A9CC0513B11
442 | 9CA5C152F51928C5C7ADB33FC1D6D11BAD3A8F7DEF1AB90FCFE0D9C3E40C8A2F
443 | 92FEE615D869508B0EC3C158380056337A6D4A25F90F9075E714FA8C5C041ECD
444 | 45790AE78EAC27F5C0DB63C0882FE1ECE683278F52917AE9D87B377EFD25CDE3
445 | C3CD2718CE5E2DE0E4CED1AB889CBC358516E0E2A14508EE340A9E011DDFBBCE
446 | E3EB07509873FD77CEEBD6BA3769373FACE75458EA01FC1B0403A3EE15524EAC
447 | 45BF312B8906383FE580FE79E207AEA3D6B0B857D356E8D2873B2D0A69577F43
448 | 4EFA8DBF05F0E64399C209918317D41730D61AE0EC2F5FA2E7980488A576EF5D
449 | E74EF22614E7DD5947C9EDDC634D46CDCE5EE3BE27E6C358CC440B6CBD16B8FF
450 | 2F1C5C86908F86C1C32F84F80617103920C5F9E9D0D455C1D9AD091C5D7DAD1B
451 | B10C2E9FDE81F2E2671F0C80D346EFB109A04805C64369C1033CBCFC0BFAC725
452 | BEE3C0648BFA54422094C5711AB0A128BAB6D3C0053CA56B0018C6FC0E88BCF4
453 | 3FF13C3305BD462E2759EA6B108434A9FAAB5EDC7BD78EA120E7EE070BCF4DE4
454 | D2843EE3AD6CC351E6B93DB3E1DFBA2F02DA7EFCDE75AA4A72702369AD856519
455 | 3B925C8824F21457BFB0AEADBB7C4A52E6062D3016A2098B498F0B8796A27DF7
456 | 3828DD9A5A01D40BCF510E0101AB46EEA41CFC47C27393A57247440D5F494CA7
457 | BAF4296E9EDE88FE719BC0E3FCE23DE3E195DD287D7EF7B241A78AB20290DA4E
458 | 1108255BBA8F8AB75A4103086B60F3F574C0E58B49C8B8F12B7A7DB29A04ADD7
459 | 82937BFD26854FD3909E7AFC1F0190D838A04BCC32F08552720AA7B74F43EBA8
460 | 09E8D5370691EDFCB0FBC45D1200DF1C9C839B8CBAA906EDABAD646F99B3B38B
461 | B6A2F265BBDE9FF3DCFCC2EA41B0908868AC98D1072E4A39C6CCDA8E945F5782
462 | 27102072E03CB21945A8F4359D72D197C1A5636B60D0FF7D879CB379CE395B44
463 | 0C87B3572B709F298A874B4796C2623660C29C6DF86E7E7FFC763E03194FCBE0
464 | ED66874BB79E112025CFEF929252EAE4E8A1292F2F6B28EA69BE70A1D44619DF
465 | 7DD46A1219037C9CB06E7E7FDCB89F8FF8CDC95607672C48DE3B175E0111080A
466 | 1FDC48F87AD4D0AAAA907AE627988D3AD2D4E280D21C35F27890C995681AD207
467 | AEBE6D88BD734213BBA769A45F3F88C2ACCBE83F692B362E1E88F53B2E6358DF
468 | 10740EF34569850AB98555F871CF555C3CB4045A75D522C66CFC8EDBF3CDBE90
469 | 98E6F1D5C111237973E6CCC298E8365890701ACF5E549193E57C8103C0988D48
470 | DE37170A074F74E83783806DD0C29BB18DACFC7A796B8A018A0697B059EF9CE0
471 | 5C8AC0E2FAEFF1A8AD2C40FFB8CD441BE1215E5834A53B0A8A6B307FDD297468
472 | ED8DB0604FCCFC6A39326E1EB63016B30D009287BFD5D892C5D2347FE7E0CF36
473 | 6157FC084C587884544EAF4703108B19170ECC278CD565C83288A40ACE71DED0
474 | C81BCB12801C00ABF05CAA61BDF3A0D7D69280C5A305E833E1077C33AB2F5627
475 | FE498A1D2E60724DAEC41543E0EAA4C0E72B8E63F78689DC9E7126BD66D76B99
476 | DEEE8DF285127999C2DEDD61DCF4047C35B12BA62D7FD729BF99D51B6B7FBE80
477 | 6BA7B7A330FB5ABD36664220923572362EF1207FDCA9BF0641D3301A345C2286
478 | BAAA427837EF82902EE3C99C0E215E983FB91B46CEDE477EC9E140043575417E
479 | 5135CE1F5E85BA9AE26AA34EE502C0FC570020953ABAEBF5B545DE4191D4B0F1
480 | 7391F3BCA241A80EA1DE9833A10B71A66D876FE1725A1E4C0635EE5ED88A8AA2
481 | 0CF085123879B480474047024A227724A6A35357A2AEAA08454F6F927966A316
482 | 4E9E2D11D6730ABC3DDDB0F4F31EF862E509B2CF92693DE06827C39CEF92AC4A
483 | 05F0E8EA1E14665D65C5623B4FADB6B2F8CD537AEFEF037207E78EEA9ACA1B6D
484 | BA4D8467602748C502AC5FF8315C1D1598B4E4081257C660CAB263A44BC08DEE
485 | 11FEF8F37A3A6ACA5F20E7DE4954BECC22FE62F50F6BE4E4ECDDD12308816DA3
486 | 2177F08087BB0BCAABD484927FFA7A10720BAAF0FDAE2BE49D431BC760F69A24
487 | 1497D7A128E706EE5FDA011B7BC74EAAEAF2D4B739FA2F7FE010CBECC7187575
488 | FB42BB4DC4F24533F1A2A416CD9A3AC1DFDB113EEE76183E632F294C3819A3BB
489 | B5C0905E2D49A3EAC0C9FBB876370F16B389B4DDB9C1E30B4979D9BAB907E286
490 | B587BD42828A1A0D71C039F127219308B16FC368246CBB4C58EFC0864F30F7BB
491 | 9348BB7E0E0F52764228518CD56B6AF6BF2FC0FC2500CE682532C568BD56BDDF
492 | A7455784448E27EF4F1CD69E7405966E3CD7B01E776AF32747A15D4B0F2CFBD7
493 | 393CC9B39ADD8E35C3915F54836F122F90CFED5A7A2276687BCC5CFD3B9C1DE4
494 | E07C69E2E25FC93317A50DB67E330C1A9D01474E3FC2B72B17223F230562A9CD
495 | 189DA68E0BEFEFE6EFEFAD14DE822951B844E8D5553794AE4DA94E031762C3C2
496 | 68FC72220DE9D9A56466A7363E98322A0269E945D87DE20E541A03F93E22D41B
497 | 03A282E0E3618FD9AB935055AB25A6B8376114F25ED4C0CFCB9E087AE4CCC386
498 | 1D25626BC7E3D4BEE5A82A7DC68A6D949D74756537DF77F27FE9C4EF9B2C954A
499 | DD4C0CF588A6F98ECDDB45C3972B7E5860766C24E1E7F8AD1791995BD6E074DC
500 | 1A5F4FEF89945BCF101CE04A7C85332D6ECCFA3492FC5878F25216164E8E22C0
501 | 96FD708E34019EA7FF899CFB7F70545929A0D910AD56DBB89C7B8F707F67426F
502 | 4FE70B04B2B116C6B04D2A77E20775188A982143D0BF6B10E9E671BD9AA3671F
503 | A1A64E47FA375B560D854AAD273FC56AF5264CF9DA5AE0B46AE68629233B60FA
504 | AADF486BA6436B2F9CFAE324D22E1D80565561E6D1A2C9269366DF9B54F97FD6
505 | C05B0B88699A3F9365996F65B6CE7CA57B7384B4EB8EA8AE5D90915B8ECA1A0D
506 | 26C4B4835824C09683A9A0290A9B57C660F3C1543CC82A26DF7769E78B83474F
507 | A1E8692AAA8A9F40F3AADC4C51F4528631FFF03AC2FE9DD06F3EFB271A68BCA6
508 | 8D8D9398E10DB158CCC3CD465D379144CE73700D8058660FA5930B04223BD022
509 | 057987CF6AA05155A1AAA20C7A4D0D49990D3A95852F945CE2F1F8BFEA69CB09
510 | A8D5FF0E381F2AFD8738F107AE2593299C876AEACA83691ECF87C7170702F0B0
511 | 980DF6DCFB3CBEA806C04B8B599FC3582C0532857386A6AE9CB329CD07AEFF97
512 | D3FE17C4CDFCE5076CC72B0000000049454E44AE426082
513 | }
514 | Stretch = True
515 | end
516 | end
517 | object BottomPanel: TPanel
518 | AnchorSideLeft.Control = LeftPanel
519 | AnchorSideLeft.Side = asrBottom
520 | AnchorSideTop.Control = OutputPanel
521 | AnchorSideTop.Side = asrBottom
522 | AnchorSideRight.Control = Owner
523 | AnchorSideRight.Side = asrBottom
524 | AnchorSideBottom.Control = Owner
525 | AnchorSideBottom.Side = asrBottom
526 | Left = 45
527 | Height = 54
528 | Top = 448
529 | Width = 727
530 | Anchors = [akLeft, akRight, akBottom]
531 | BevelOuter = bvNone
532 | ClientHeight = 54
533 | ClientWidth = 727
534 | Color = 45556
535 | ParentColor = False
536 | TabOrder = 4
537 | object installButton: TSpeedButton
538 | AnchorSideLeft.Control = BottomPanel
539 | AnchorSideTop.Control = BottomPanel
540 | AnchorSideRight.Control = BottomPanel
541 | AnchorSideRight.Side = asrBottom
542 | AnchorSideBottom.Control = BottomPanel
543 | AnchorSideBottom.Side = asrBottom
544 | Left = 603
545 | Height = 44
546 | Top = 5
547 | Width = 119
548 | Action = ActInstall
549 | Anchors = [akTop, akRight, akBottom]
550 | BorderSpacing.Around = 5
551 | Caption = 'Install'
552 | Font.CharSet = ANSI_CHARSET
553 | Font.Color = clBlack
554 | Font.Height = -12
555 | Font.Name = 'Segoe UI'
556 | Font.Pitch = fpVariable
557 | Font.Quality = fqDraft
558 | Images = ImageList1
559 | ImageIndex = 2
560 | ParentFont = False
561 | end
562 | end
563 | object ImageList1: TImageList
564 | Left = 328
565 | Top = 232
566 | Bitmap = {
567 | 4C69050000001000000010000000000000000000000000000000000000000000
568 | 0000000000008D9190FF8D918FFF8D918FFF8C908FFF8B8F8DFF898E8CFF888C
569 | 8AFF878B89FF858988FF848887FF000000000000000000000000000000000000
570 | 0000000000008D9290FFFAFAFAFFFAFAFAFFF9F9F9FFF8F8F8FFF6F6F6FFF3F3
571 | F3FFF0F0F0FFEDEDEDFF838786FF000000000000000000000000000000000000
572 | 0000000000008D9290FFFBFBFBFFFBFBFBFFFAFAFAFFF9F9F9FFF6F6F6FFF4F4
573 | F4FFF0F0F0FFEDEDEDFF828685FF000000000000000000000000000000000000
574 | 0000000000008D9190FFFBFBFBFFFBFBFBFFFAFAFAFFF9F9F9FFF6F6F6FFF3F3
575 | F3FFF1F1F1FFEEEEEEFF818584FF000000000000000000000000000000000000
576 | 0000000000008D918FFFFBFBFBFFFBFBFBFFFAFAFAFFF9F9F9FFF6F6F6FFF4F4
577 | F4FFF1F1F1FFEEEEEEFF808482FF4C92DE6A5397E0F860A0E4FF60A0E3FF60A0
578 | E3FF5397E0F88C908FFFFAFAFAFFFAFAFAFFFAFAFAFFF8F8F8FFF6F6F6FFF3F3
579 | F3FFF0F0F0FFEEEEEEFF7F8381FF5397E0F8BCE1FCFFC7E9FFFFC6E8FFFFC4E7
580 | FFFFB9E0FCFF8B908EFFF9F9F9FFF9F9F9FFF8F8F8FFF7F7F7FFF4F4F4FFF2F2
581 | F2FFF0F0F0FFEDEDEDFF7E8280FF60A0E4FFC8E9FFFFCAE9FFFFC9EAFFFFC7E9
582 | FFFFC6E9FFFF8A8E8DFFF7F7F7FFF7F7F7FFF7F7F7FFF5F5F5FFF3F3F3FFF1F1
583 | F1FFEFEFEFFFEDEDEDFF7D8180FF60A0E4FFBEE2FCFF61A0E3FF60A0E4FF60A0
584 | E4FF60A0E4FF60A0E4FF60A0E4FF60A0E3FF5FA0E3FF5F9FE2FF5E9DE1FF5C9C
585 | DFFF5698DEFF74A9E2FF7C817FFF60A0E3FF93C4F1FF8FC2F0FFC6E8FFFFC6E8
586 | FFFFC5E8FFFFC4E8FFFFC4E7FFFFC1E6FFFFBEE3FCFFBADEF6FFB3D6EEFFACCD
587 | E3FF90B9DBFF8EB7E3FF7C807FFF5FA0E3FF6CA9E7FFB5DDFAFFC2E7FFFFC1E6
588 | FFFFC0E6FFFFC0E6FFFFBFE5FFFFBDE4FEFFBAE0FBFFB5DAF4FFAED3EBFFA8CA
589 | E1FF73A8DCFFBED2E7FF7C807EFF5E9FE2FF62A1E3FFBDE1F8FFBCE1F9FFBAE0
590 | FBFFB9E0FBFFB8E0FBFFB7DFFAFFB6DEF8FFB3DAF5FFAFD4EFFFA8CDE6FFA2C6
591 | DDFF5E9CDDFFE5E7E9FF7B807EFF599ADFFF7BB1E5FFB6D8EFFFB4D8F0FFB2D7
592 | F1FFB0D7F1FFAFD6F1FFAFD6F1FFADD5EFFFABD2ECFFA7CCE6FFA2C7DFFF95BC
593 | DAFF598DC4FF7C807EFF7C807EFF5195DEFF96BEE1FFADCEE4FFABCEE5FFA9CD
594 | E5FFA7CCE6FFA7CCE6FFA6CBE5FFA5CAE4FFA3C8E1FFA0C5DDFF9DC1D9FF78AA
595 | D9FF4C92DE6A00000000000000004C92DEE95698DEFF5B9BDEFF5B9BDEFF5B9B
596 | DEFF5A9BDEFF5A9BDEFF5A9BDEFF5A9BDEFF5A9ADEFF599ADDFF5999DDFF4E93
597 | DEF54C92DE0E0000000000000000000000000000000000000000000000000000
598 | 0000000000000000000000000000000000000000000000000000000000000000
599 | 0000000000000000000000000000000000000000000000000000000000000000
600 | 00000000000000FFFF011BAACE5D1BAACE5D00FFFF0100000000000000000000
601 | 0000000000000000000000000000000000000000000000000000000000000080
602 | FF021EACCD5C32B4D5C87CD7EEF57BD9F1F735B7D8CB17A9CC6E0080BF040000
603 | 000000000000000000000000000000000000000000000099CC0522ADCF704EA9
604 | B9E192D4E0F9B1EFFFFFAAEEFFFFA2ECFFFF9AEBFFFF86C5CEFC49ACBFE014A7
605 | CD800092B607000000000000000000AAD50626ACD0723BB7D6CE9AE0F3F9C1EE
606 | F7FFC3C9C0FFC4B8A5FFB5D0CFFFAED3D3FFB9B7A6FFA5CECFFF89E7FEFF6AD8
607 | F5FB2EB9DBD214AACE8100AAC60911A6CAE275D1E8F5BFF2FFFFC0F2FFFFBEF2
608 | FFFFB7F0FEFFBAD2CFFFC4AD94FFC2AE95FFB1C3BCFF93E5F7FF88E7FFFF80E6
609 | FFFF78E4FFFF52CDEBF90DA4C9E32DB8DCDF62D3EEF445BFDCDF67CCE4E9BBCB
610 | C7FFC6B9A7FFB6D8DAFFA6EDFFFF9EEBFFFF9FDDE8FFB0BAAFFFACBBB0FF6ACD
611 | E4FB30B9DAE44DC6E4EC2DB7DCDF22B5D9DF66DBF8FF7EE4FCFF7EE0F7F94DB9
612 | D1E145BCDBDE91E2F6FCA4EDFFFF9DEBFFFF95EAFFFF6AD6F1F738B7D8DC5CC2
613 | DCE788E6FDFF6EDDF9FF23B5D9DF18B1D7DF4ED3F3FF66DBF8FF7EE4FCFF91EA
614 | FFFF8AE6FCFD4EC5E3D93BB9DADB5BCBE6EE32B7D8D75DCEEADF90E9FFFF8FE8
615 | FFFF73DFFAFF56D5F5FF19B1D8DF0DAED6DF36CBEFFF4ED3F3FF66DBF8FF7EE4
616 | FCFF91EAFFFF91EAFFFF90EAFFFF30B6D7DF91E9FFFF91E9FFFF91E9FFFF77E0
617 | FBFF5BD7F6FF3ECDF1FF0FAED6DF02AAD4DF1DC3EBFF36CBEFFF4ED3F3FF66DB
618 | F8FF7EE4FCFF91EAFFFF91EAFFFF3DBDDDE091E9FFFF91E9FFFF7CE2FBFF60D8
619 | F6FF43CFF2FF26C5EDFF05AAD5DF00A9D4DF05BBE7FF1DC3EBFF36CBEFFF4ED3
620 | F3FF66DBF8FF7EE4FCFF91EAFFFF3DBDDDE091E9FFFF81E4FCFF64DAF7FF48D0
621 | F2FF2BC7EDFF0FBDE9FF00A9D4DF00A3CBAB00ABD6E505BAE5FF1DC3EBFF36CB
622 | EFFF4ED3F3FF66DBF8FF7EE4FCFF3DBDDDE086E5FDFF69DBF8FF4DD2F3FF30C8
623 | EEFF13BEE9FF00AED8EB00A3CCAE00000000009CC51F00A5CCA402AAD4E21BC1
624 | E8FF36CBEFFF4ED3F3FF66DBF8FF39BCDCE06EDDF9FF51D3F4FF35CAEFFF12B6
625 | DFF600A4CEC600A1C5390000000000000000000000000000000000A2C51602A4
626 | CC9A0DAED5DD32C8ECFF4ED3F3FF2FB8D9E056D5F5FF30C3E9FB0AAAD2CD00A1
627 | C764000000000000000000000000000000000000000000000000000000000000
628 | 000000A2C51607A6CC9A18B1D7D81DB1D4E519B1D6DA06A4CA7800AAAA030000
629 | 0000000000000000000000000000000000000000000000000000000000000000
630 | 00000000000000000000009CC61206A2CA7C00A2B90B00000000000000000000
631 | 0000000000000000000000000000000000000000000000000000000000000000
632 | 0000000000000000000000000000000000000000000000000000000000000000
633 | 0000000000000000000000000000000000000000000000000000000000000000
634 | 0000000000000000000000000000000000000000000000000000000000000000
635 | 0000000000000000000000000000000000000000000000000000000000000000
636 | 0000000000000000000000000000188332FF0000000000000000000000000000
637 | 0000000000000000000000000000000000000000000000000000000000000000
638 | 0000000000000000000000000000178331FF168231FF00000000000000000000
639 | 0000000000000000000000000000000000000000000000000000000000000000
640 | 0000000000000000000000000000158330FF15812FFF14802EFF000000000000
641 | 00000000000000000000000000000000000000000000188532FF178532FF1685
642 | 31FF158430FF158430FF14832FFF13822EFF13802DFF127F2DFF127E2DFF0000
643 | 00000000000000000000000000000000000000000000178432FF168431FF1584
644 | 30FF14832FFF13822EFF12812DFF11802CFF107F2BFF107E2BFF107D2BFF107C
645 | 2BFF0000000000000000000000000000000000000000178331FF168330FF1482
646 | 2FFF13822EFF12812DFF10802CFF0F7E2AFF0E7D29FF0E7C29FF0E7B28FF0E7B
647 | 29FF0F7B2AFF00000000000000000000000000000000168231FF158130FF1481
648 | 2EFF12802DFF107F2BFF0F7E2AFF0E7D29FF0C7C28FF0C7A27FF0C7A27FF0D7A
649 | 27FF0000000000000000000000000000000000000000168030FF14802FFF137F
650 | 2DFF117E2CFF0F7D2AFF0E7C29FF0C7B27FF0B7A26FF0B7926FF0B7926FF0000
651 | 0000000000000000000000000000000000000000000000000000000000000000
652 | 00000000000000000000000000000C7A27FF0B7926FF0A7925FF000000000000
653 | 0000000000000000000000000000000000000000000000000000000000000000
654 | 00000000000000000000000000000C7A27FF0B7926FF00000000000000000000
655 | 0000000000000000000000000000000000000000000000000000000000000000
656 | 00000000000000000000000000000D7A28FF0000000000000000000000000000
657 | 0000000000000000000000000000000000000000000000000000000000000000
658 | 0000000000000000000000000000000000000000000000000000000000000000
659 | 0000000000000000000000000000000000000000000000000000000000000000
660 | 0000000000000000000000000000000000000000000000000000000000000000
661 | 0000000000000000000000000000000000000000000000000000000000000000
662 | 0000000000000000000000000000000000000000000000000000000000000000
663 | 0000000000000000000000000000000000000000000000000000000000000000
664 | 1C01000055170000553F0000554F0000554F0000553F0000551700001C010000
665 | 0000000000000000000000000000000000000000000000000000000071040000
666 | C76D0000FFBF0505FFE91010FFF91010FFF90505FFE90000FFBF0000C76D0000
667 | 7103000000000000000000000000000000000000000000008E250000FFB32E2E
668 | FFFF7878FFFFABABFFFFAEAEFFFFAEAEFFFFAAAAFFFF7878FFFF2E2EFFFF0000
669 | FFB300008E25000000000000000000000000000071040000FFB33333FFFCA4A4
670 | FFFF7D7DFFFF5B5BFFFF6262FFFF6262FFFF5C5CFFFF7E7EFFFFA4A4FFFF3333
671 | FFFC0000FFB3000071030000000000001C010000C76E2E2EFFFFA4A4FFFF5959
672 | FFFF5555FFFF6B6BFFFFDDDDFFFFDCDCFFFF6B6BFFFF5555FFFF5959FFFFA4A4
673 | FFFF2D2DFFFF0000C76D00001C01000055170000FFBF7878FFFF7D7DFFFF5555
674 | FFFF5555FFFF7171FFFFE3E3FFFFE3E3FFFF7171FFFF5555FFFF5555FFFF7E7E
675 | FFFF7777FFFF0000FFBF000055170000553F0505FFE9ABABFFFF5B5BFFFF5555
676 | FFFF5555FFFF6A6AFFFFDCDCFFFFDCDCFFFF6A6AFFFF5555FFFF5555FFFF5C5C
677 | FFFFAAAAFFFF0505FFE90000553F0000554E1111FFF9AEAEFFFF5555FFFF5555
678 | FFFF5555FFFF6464FFFFD6D6FFFFD6D6FFFF6464FFFF5555FFFF5555FFFF5555
679 | FFFFAEAEFFFF1111FFF90000554E0000554E1111FFF9AEAEFFFF5555FFFF5555
680 | FFFF5555FFFF5B5BFFFFC4C4FFFFC4C4FFFF5B5BFFFF5555FFFF5555FFFF5555
681 | FFFFAFAFFFFF1111FFF90000554E0000553F0505FFE9AAAAFFFF5C5CFFFF5555
682 | FFFF5555FFFF5555FFFF7272FFFF7272FFFF5555FFFF5555FFFF5555FFFF5C5C
683 | FFFFAAAAFFFF0505FFE90000553E000055170000FFBF7878FFFF7E7EFFFF5555
684 | FFFF5555FFFF6262FFFFBFBFFFFFBFBFFFFF6262FFFF5555FFFF5555FFFF7F7F
685 | FFFF7878FFFF0000FFBF0000551700001C010000C76D2E2EFFFFA4A4FFFF5959
686 | FFFF5555FFFF6A6AFFFFDBDBFFFFDBDBFFFF6A6AFFFF5555FFFF5A5AFFFFA4A4
687 | FFFF2D2DFFFF0000C76D00001C0100000000000071030000FFB33333FFFCA4A4
688 | FFFF7E7EFFFF5C5CFFFF6060FFFF6060FFFF5C5CFFFF7E7EFFFFA3A3FFFF3232
689 | FFFC0000FFB20000710300000000000000000000000000008E250000FFB32D2D
690 | FFFF7777FFFFAAAAFFFFAEAEFFFFAEAEFFFFAAAAFFFF7777FFFF2D2DFFFF0000
691 | FFB200008E250000000000000000000000000000000000000000000071040000
692 | C76D0000FFBF0505FFE91010FFF91010FFF90505FFE90000FFBF0000C76D0000
693 | 7103000000000000000000000000000000000000000000000000000000000000
694 | 1C01000055170000553E0000554E0000554E0000553E0000551700001C010000
695 | 0000000000000000000000000000000000000000000000000000000000000000
696 | 0000000000000000000000000000000000000000000000000000000000000000
697 | 0000000000000000000000000000000000000000000000000000000000000000
698 | 0000000000000000000000000000000000000000000000000000000000000000
699 | 0000000000000000000000000000000000000000000000000000000000000000
700 | 000000000000000000000000000000000000000000000000000000000000012C
701 | 032C002201140000000000000000000000000000000000000000000000000000
702 | 0000000000000000000000000000000000000000000000000000023C042F1096
703 | 22CB0A84159B0039000100000000000000000000000000000000000000000000
704 | 00000000000000000000000000000000000000000000044D084C179F30D436C8
705 | 70FF2AB857FB047C088100210002000000000000000000000000000000000000
706 | 000000000000000000000000000000000000023C042F169E2FD532C268FD34C5
707 | 6CFF1CA53BEE0167023C000E00010000000000000000044D084A058A0C7D001D
708 | 010C000000000000000000000000044D084B179F30D536C870FF34C56CFF169D
709 | 2ED20165023A000000000000000000000000023C042F169E2ED426B34FF8047A
710 | 0B7F001D010C00000000023C042F169F2FD432C268FD34C56CFF1CA63BEE0168
711 | 033C000E00020000000000000000001D00040176047A2AB857F936C870FF2AB8
712 | 57FA0A90169B044C0853179F30D536C870FF34C56CFF169D2ED20165023A0000
713 | 000000000000000000000000000000000000001D000C0A8F169A2AB857FA36C8
714 | 70FF2AB857FA1AA337E132C268FD34C56CFF1CA53AED0166033B000E00020000
715 | 00000000000000000000000000000000000000000000001D000A0478087B2AB8
716 | 56F936C870FF37C871FF34C56CFF169E2ED40168033D00000000000000000000
717 | 0000000000000000000000000000000000000000000000000000001D000A098E
718 | 13982AB856F934C56CFF1CA63BEE0168033D000E000200000000000000000000
719 | 000000000000000000000000000000000000000000000000000000000000001D
720 | 000C04790A7E139B29D10166033B000000000000000000000000000000000000
721 | 0000000000000000000000000000000000000000000000000000000000000000
722 | 0000001D010C002C022F000E0002000000000000000000000000000000000000
723 | 0000000000000000000000000000000000000000000000000000000000000000
724 | 0000000000000000000000000000000000000000000000000000000000000000
725 | 0000000000000000000000000000000000000000000000000000000000000000
726 | 0000000000000000000000000000000000000000000000000000000000000000
727 | 0000000000000000000000000000
728 | }
729 | end
730 | object ActionList1: TActionList
731 | Images = ImageList1
732 | Left = 328
733 | Top = 304
734 | object ActAbreForm: TAction
735 | OnExecute = ActAbreFormExecute
736 | end
737 | object ActACBrCheckInstall: TAction
738 | OnExecute = ActACBrCheckInstallExecute
739 | end
740 | object ActLazarusCheckInstall: TAction
741 | OnExecute = ActLazarusCheckInstallExecute
742 | end
743 | object ActInstall: TAction
744 | Caption = 'ActInstall'
745 | OnExecute = ActInstallExecute
746 | end
747 | end
748 | end
749 |
--------------------------------------------------------------------------------
/src/acbrscriptgui.view.main.pas:
--------------------------------------------------------------------------------
1 | {
2 | acbrscriptgui
3 | Copyright (C) 2020 Ari Rodrigues
4 | This source is free software; you can redistribute it and/or modify it under
5 | the terms of the GNU General Public License as published by the Free
6 | Software Foundation; either version 2 of the License, or (at your option)
7 | any later version.
8 |
9 | This code is distributed in the hope that it will be useful, but WITHOUT ANY
10 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12 | details.
13 | }
14 |
15 |
16 | unit acbrscriptgui.view.main;
17 |
18 | {$mode delphi}{$H+}
19 |
20 | interface
21 |
22 | uses
23 | LCLType,
24 | Classes,
25 | SysUtils,
26 | Forms,
27 | Controls,
28 | Graphics,
29 | Dialogs,
30 | ExtCtrls,
31 | EditBtn,
32 | StdCtrls,
33 | Buttons,
34 | SynEdit,
35 | ActnList,
36 | Math,
37 | process;
38 |
39 | type
40 |
41 | { TFormMain }
42 | TFormMain = class(TForm)
43 | ActAbreForm: TAction;
44 | ActACBrCheckInstall: TAction;
45 | ActInstall: TAction;
46 | ActLazarusCheckInstall: TAction;
47 | ActionList1: TActionList;
48 | buttonDownload: TSpeedButton;
49 | edtPathACBr: TEditButton;
50 | edtPathLazarus: TEditButton;
51 | imagePowered: TImage;
52 | ImageList1: TImageList;
53 | lblACBrPath: TLabel;
54 | lblLazarusPath: TLabel;
55 | buttonValidatePathACBr: TSpeedButton;
56 | buttonValidatePathLazarus: TSpeedButton;
57 | outputScreen: TMemo;
58 | StaticText2: TLabel;
59 | verticalTitle: TLabel;
60 | PaintBox1: TPaintBox;
61 | PaintBox2: TPaintBox;
62 | BottomPanel: TPanel;
63 | pnlTop: TPanel;
64 | midTopPanel: TPanel;
65 | LeftPanel: TPanel;
66 | OutputPanel: TPanel;
67 | installButton: TSpeedButton;
68 | procedure ActAbreFormExecute(Sender: TObject);
69 | procedure ActACBrCheckInstallExecute(Sender: TObject);
70 | procedure ActInstallExecute(Sender: TObject);
71 | procedure ActLazarusCheckInstallExecute(Sender: TObject);
72 | procedure edtPathACBrButtonClick(Sender: TObject);
73 | procedure edtPathLazarusButtonClick(Sender: TObject);
74 | procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
75 | procedure FormDestroy(Sender: TObject);
76 | procedure FormShow(Sender: TObject);
77 | procedure outputScreenChange(Sender: TObject);
78 | procedure PaintBox1Paint(Sender: TObject);
79 | procedure PaintBox2Paint(Sender: TObject);
80 | private
81 | TimeOld: TDateTime;
82 | TimeFinish: TDateTime;
83 | strListACBr: TStringList;
84 | procedure ExecuteBuildIDE;
85 | procedure ExecuteAddPackges;
86 | public
87 |
88 | end;
89 |
90 | var
91 | FormMain: TFormMain;
92 | FSplash: boolean = False;
93 |
94 | implementation
95 |
96 | {$R *.lfm}
97 |
98 | uses
99 | {$IfNDef LINUX} Windows, {$EndIf}
100 | LCLIntf,
101 | FileUtil,
102 | acbrscriptgui.common,
103 | acbrscriptgui.model.downloadf,
104 | Keyboard;
105 |
106 | procedure localiza(Sender: TObject);
107 | var
108 | sDir: string;
109 | begin
110 | SelectDirectory('Escolha a Pasta ', '', sDir);
111 | (Sender as TEditButton).Text := LowerCase(sDir); /// ACBr <> acbr !!!!
112 | end;
113 |
114 | procedure TFormMain.FormShow(Sender: TObject);
115 | begin
116 | buttonDownload.Caption := 'Atualize ou Instale pelo' + LineEnding +
117 | 'download do ACBr - SVN' + LineEnding + '&Clique aqui';
118 | // FormMain.midTopPanel.Height:= {$IfNDef Windows} 100 {$Else} 90 {$IfEnd};
119 | end;
120 |
121 | procedure TFormMain.outputScreenChange(Sender: TObject);
122 | begin
123 | Application.ProcessMessages;
124 | outputScreen.SelStart := Length(outputScreen.Text);
125 | end;
126 |
127 | procedure TFormMain.ActAbreFormExecute(Sender: TObject);
128 | begin
129 | AbreForm(TFormDownload, FormDownload);
130 | end;
131 |
132 | procedure TFormMain.ActACBrCheckInstallExecute(Sender: TObject);
133 | var
134 | i: integer = 0;
135 | begin
136 | strListACBr := FindAllFiles(edtPathACBr.Text, '*.lpk', True);
137 | try
138 | for i := 0 to strListACBr.Count - 1 do
139 | outputScreen.Lines.Add(LowerCase(strListACBr.Strings[i]));
140 | finally
141 | buttonValidatePathACBr.ImageIndex := ifthen(i > 50, 4, 3);
142 | end;
143 | end;
144 |
145 | { **************** InstallExecute **************** }
146 | procedure TFormMain.ActInstallExecute(Sender: TObject);
147 | begin
148 | if (buttonValidatePathACBr.ImageIndex = 3) or (buttonValidatePathLazarus.ImageIndex = 3) then
149 | begin
150 | dialogBoxAutoClose('', 'VALIDE SEU PATH NO ÍCONE VERMELHO', 4);
151 | exit;
152 | end;
153 |
154 | try
155 | TimeOld := Now;
156 | ExecuteAddPackges;
157 | ExecuteBuildIDE;
158 | finally
159 | TimeFinish := TimeOld - now;
160 | dialogBoxAutoClose('', 'ACBr FOI INSTALADO NO LAZARUS! ' + sLineBreak + TimeToStr(TimeFinish), 6);
161 | buttonValidatePathACBr.ImageIndex := 3;
162 | buttonValidatePathLazarus.ImageIndex := buttonValidatePathACBr.ImageIndex;
163 |
164 | outputScreen.Clear;
165 | outputScreen.Color := clCream;
166 | outputScreen.Font.Color := clBlack;
167 | edtPathACBr.Clear;
168 | edtPathLazarus.Clear;
169 | end;
170 | end;
171 |
172 | { **************** AddPackges **************** }
173 | procedure TFormMain.ExecuteAddPackges;
174 | const
175 | C_BUFSIZE = 2048;
176 | var
177 | AProcess: TProcess;
178 | Buffer: pointer;
179 | SStream: TStringStream;
180 | nread: longint;
181 | i: integer;
182 | fPath : string;
183 | begin
184 | fPath := IncludeTrailingPathDelimiter(edtPathLazarus.Text) +'lazbuild';
185 |
186 | for i := 0 to strListACBr.Count - 1 do
187 | begin
188 | AProcess := TProcess.Create(nil);
189 | try
190 | AProcess.CommandLine:= concat(fPath,' --add-package-link ', strListACBr.Strings[i]);
191 | AProcess.Options := [poUsePipes, poStdErrToOutput];
192 | AProcess.ShowWindow := swoHIDE;
193 | ///
194 | Getmem(Buffer, C_BUFSIZE);
195 | SStream := TStringStream.Create('');
196 | ///
197 | AProcess.Execute;
198 | while AProcess.Running do
199 | begin
200 | nread := AProcess.Output.Read(Buffer^, C_BUFSIZE);
201 | if nread = 0 then
202 | sleep(100)
203 | else
204 | begin
205 | SStream.size := 0;
206 | SStream.Write(Buffer^, nread);
207 | { ...to do - verificar o porque nao esta dando saida em outputscreen}
208 | outputScreen.Lines.Append(SStream.DataString);
209 | outputScreen.Lines.Append(strListACBr.Strings[i]);
210 | end;
211 | end;
212 |
213 | repeat
214 | nread := AProcess.Output.Read(Buffer^, C_BUFSIZE);
215 | if nread > 0 then
216 | begin
217 | SStream.size := 0;
218 | SStream.Write(Buffer^, nread);
219 | outputScreen.Lines.Append(strListACBr.Strings[i]);
220 | end
221 | until nread = 0;
222 |
223 | finally
224 | AProcess.Free;
225 | Freemem(buffer);
226 | SStream.Free;
227 | Application.ProcessMessages;
228 | end;
229 | end; /// for in
230 | end;
231 |
232 | { **************** ExecuteBuildIDE **************** }
233 | procedure TFormMain.ExecuteBuildIDE;
234 | const
235 | C_BUFSIZE = 2048;
236 | var
237 | AProcess: TProcess;
238 | Buffer: pointer;
239 | SStream: TStringStream;
240 | nread: longint;
241 | begin
242 | outputScreen.Clear;
243 | AProcess := TProcess.Create(nil);
244 | AProcess.Executable := IncludeTrailingPathDelimiter(edtPathLazarus.Text) + 'lazbuild';
245 | AProcess.Parameters.Add('--build-ide=');
246 | AProcess.Options := [poUsePipes, poStdErrToOutput];
247 |
248 | AProcess.ShowWindow := swoHIDE;
249 | Getmem(Buffer, C_BUFSIZE);
250 | SStream := TStringStream.Create('');
251 | ///
252 | AProcess.Execute;
253 | while AProcess.Running do
254 | begin
255 | nread := AProcess.Output.Read(Buffer^, C_BUFSIZE);
256 | if nread = 0 then
257 | sleep(100)
258 | else
259 | begin
260 | SStream.size := 0;
261 | SStream.Write(Buffer^, nread);
262 | outputScreen.Lines.Append(SStream.DataString);
263 | end;
264 | end;
265 | repeat
266 | nread := AProcess.Output.Read(Buffer^, C_BUFSIZE);
267 | if nread > 0 then
268 | begin
269 | SStream.size := 0;
270 | SStream.Write(Buffer^, nread);
271 | outputScreen.Lines.Append(SStream.DataString);
272 | end;
273 | until nread = 0;
274 | ///
275 | AProcess.Free;
276 | Freemem(buffer);
277 | SStream.Free;
278 | end;
279 |
280 | procedure TFormMain.ActLazarusCheckInstallExecute(Sender: TObject);
281 | var
282 | sl: TStringList;
283 | i: integer =0 ;
284 | begin
285 | outputScreen.Clear;
286 | sl := FindAllFiles(edtPathLazarus.Text, 'lazbuild.*', True);
287 | try
288 | for i := 0 to sl.Count - 1 do
289 | outputScreen.Lines.Add(LowerCase(sl.Strings[i]));
290 | finally
291 | buttonValidatePathLazarus.ImageIndex := ifthen(i >= 3, 4, 3);
292 | sl.Free;
293 | end;
294 | end;
295 |
296 | procedure TFormMain.edtPathACBrButtonClick(Sender: TObject);
297 | begin
298 | localiza(edtPathACBr);
299 | end;
300 |
301 | procedure TFormMain.edtPathLazarusButtonClick(Sender: TObject);
302 | begin
303 | localiza(edtPathLazarus);
304 | end;
305 |
306 |
307 | procedure TFormMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
308 | begin
309 | CloseAction := caFree;
310 | end;
311 |
312 |
313 | procedure TFormMain.FormDestroy(Sender: TObject);
314 | begin
315 | strListACBr.Free;
316 | inherited;
317 | end;
318 |
319 | procedure TFormMain.PaintBox1Paint(Sender: TObject);
320 | begin
321 | gradientHorizontal(PaintBox1.Canvas, PaintBox1.ClientRect, $60ff60, $00005300);
322 | end;
323 |
324 | procedure TFormMain.PaintBox2Paint(Sender: TObject);
325 | begin
326 | gradientVertical(PaintBox2.Canvas, PaintBox2.ClientRect, $60ff60, $00005300);
327 | end;
328 |
329 |
330 | end.
331 |
--------------------------------------------------------------------------------