├── 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 | <Scaled Value="True"/> 11 | <ResourceType Value="res"/> 12 | <UseXPManifest Value="True"/> 13 | <XPManifest> 14 | <DpiAware Value="True"/> 15 | </XPManifest> 16 | <Icon Value="0"/> 17 | </General> 18 | <BuildModes Count="4"> 19 | <Item1 Name="Default" Default="True"/> 20 | <Item2 Name="windows"> 21 | <CompilerOptions> 22 | <Version Value="11"/> 23 | <PathDelim Value="\"/> 24 | <Target> 25 | <Filename Value="d:\dev-lazarus\lab_acbr\acbrscriptGUI\bin\windows\acbrscriptgui_win"/> 26 | </Target> 27 | <SearchPaths> 28 | <IncludeFiles Value="$(ProjOutDir)"/> 29 | <OtherUnitFiles Value="C:\lazarus\components\lazsvnpkg;src"/> 30 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 31 | </SearchPaths> 32 | <Linking> 33 | <Debugging> 34 | <GenerateDebugInfo Value="False"/> 35 | <UseHeaptrc Value="True"/> 36 | </Debugging> 37 | <Options> 38 | <Win32> 39 | <GraphicApplication Value="True"/> 40 | </Win32> 41 | </Options> 42 | </Linking> 43 | </CompilerOptions> 44 | </Item2> 45 | <Item3 Name="linux"> 46 | <CompilerOptions> 47 | <Version Value="11"/> 48 | <PathDelim Value="\"/> 49 | <Target> 50 | <Filename Value="bin\linux\acbrscriptgui_lnx"/> 51 | </Target> 52 | <SearchPaths> 53 | <IncludeFiles Value="$(ProjOutDir)"/> 54 | <OtherUnitFiles Value="\usr\share\lazarus\2.0.10\components\lazsvnpkg\;src"/> 55 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 56 | </SearchPaths> 57 | <CodeGeneration> 58 | <TargetOS Value="linux"/> 59 | </CodeGeneration> 60 | <Linking> 61 | <Debugging> 62 | <GenerateDebugInfo Value="False"/> 63 | </Debugging> 64 | <Options> 65 | <Win32> 66 | <GraphicApplication Value="True"/> 67 | </Win32> 68 | </Options> 69 | </Linking> 70 | </CompilerOptions> 71 | </Item3> 72 | <Item4 Name="debug"> 73 | <CompilerOptions> 74 | <Version Value="11"/> 75 | <PathDelim Value="\"/> 76 | <Target> 77 | <Filename Value="D:\dev-lazarus\lab_acbr\acbrscriptGUI\Linux\acbrscriptgui_lnx"/> 78 | </Target> 79 | <SearchPaths> 80 | <IncludeFiles Value="$(ProjOutDir)"/> 81 | <OtherUnitFiles Value="C:\lazarus\components\lazsvnpkg;src"/> 82 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 83 | </SearchPaths> 84 | <Linking> 85 | <Options> 86 | <Win32> 87 | <GraphicApplication Value="True"/> 88 | </Win32> 89 | </Options> 90 | </Linking> 91 | </CompilerOptions> 92 | </Item4> 93 | </BuildModes> 94 | <PublishOptions> 95 | <Version Value="2"/> 96 | <UseFileFilters Value="True"/> 97 | </PublishOptions> 98 | <RunParams> 99 | <FormatVersion Value="2"/> 100 | <Modes Count="0"/> 101 | </RunParams> 102 | <RequiredPackages Count="3"> 103 | <Item1> 104 | <PackageName Value="lazreport"/> 105 | </Item1> 106 | <Item2> 107 | <PackageName Value="SynEdit"/> 108 | </Item2> 109 | <Item3> 110 | <PackageName Value="LCL"/> 111 | </Item3> 112 | </RequiredPackages> 113 | <Units Count="4"> 114 | <Unit0> 115 | <Filename Value="acbrscriptgui_app.lpr"/> 116 | <IsPartOfProject Value="True"/> 117 | </Unit0> 118 | <Unit1> 119 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 120 | <IsPartOfProject Value="True"/> 121 | <ComponentName Value="FormMain"/> 122 | <HasResources Value="True"/> 123 | <ResourceBaseClass Value="Form"/> 124 | </Unit1> 125 | <Unit2> 126 | <Filename Value="src\acbrscriptgui.common.pas"/> 127 | <IsPartOfProject Value="True"/> 128 | </Unit2> 129 | <Unit3> 130 | <Filename Value="src\acbrscriptgui.model.downloadf.pas"/> 131 | <IsPartOfProject Value="True"/> 132 | <ComponentName Value="FormDownload"/> 133 | <HasResources Value="True"/> 134 | <ResourceBaseClass Value="Form"/> 135 | </Unit3> 136 | </Units> 137 | </ProjectOptions> 138 | <CompilerOptions> 139 | <Version Value="11"/> 140 | <PathDelim Value="\"/> 141 | <Target> 142 | <Filename Value="bin\linux\acbrscriptgui_lnx"/> 143 | </Target> 144 | <SearchPaths> 145 | <IncludeFiles Value="$(ProjOutDir)"/> 146 | <OtherUnitFiles Value="src;\usr\share\lazarus\2.0.10\components\lazsvnpkg\"/> 147 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 148 | </SearchPaths> 149 | <Linking> 150 | <Options> 151 | <Win32> 152 | <GraphicApplication Value="True"/> 153 | </Win32> 154 | </Options> 155 | </Linking> 156 | </CompilerOptions> 157 | <Debugging> 158 | <Exceptions Count="3"> 159 | <Item1> 160 | <Name Value="EAbort"/> 161 | </Item1> 162 | <Item2> 163 | <Name Value="ECodetoolError"/> 164 | </Item2> 165 | <Item3> 166 | <Name Value="EFOpenError"/> 167 | </Item3> 168 | </Exceptions> 169 | </Debugging> 170 | </CONFIG> 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 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectSession> 4 | <PathDelim Value="\"/> 5 | <Version Value="11"/> 6 | <BuildModes Active="Default"/> 7 | <Units Count="13"> 8 | <Unit0> 9 | <Filename Value="acbrscriptgui_app.lpr"/> 10 | <IsPartOfProject Value="True"/> 11 | <EditorIndex Value="-1"/> 12 | <CursorPos X="20" Y="25"/> 13 | <UsageCount Value="136"/> 14 | </Unit0> 15 | <Unit1> 16 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 17 | <IsPartOfProject Value="True"/> 18 | <ComponentName Value="FormMain"/> 19 | <HasResources Value="True"/> 20 | <ResourceBaseClass Value="Form"/> 21 | <IsVisibleTab Value="True"/> 22 | <CursorPos X="43" Y="18"/> 23 | <UsageCount Value="136"/> 24 | <Loaded Value="True"/> 25 | <LoadedDesigner Value="True"/> 26 | </Unit1> 27 | <Unit2> 28 | <Filename Value="src\acbrscriptgui.common.pas"/> 29 | <IsPartOfProject Value="True"/> 30 | <EditorIndex Value="1"/> 31 | <TopLine Value="73"/> 32 | <CursorPos Y="13"/> 33 | <UsageCount Value="135"/> 34 | <Loaded Value="True"/> 35 | </Unit2> 36 | <Unit3> 37 | <Filename Value="src\acbrscriptgui.model.downloadf.pas"/> 38 | <IsPartOfProject Value="True"/> 39 | <ComponentName Value="FormDownload"/> 40 | <HasResources Value="True"/> 41 | <ResourceBaseClass Value="Form"/> 42 | <EditorIndex Value="2"/> 43 | <UsageCount Value="114"/> 44 | <Loaded Value="True"/> 45 | </Unit3> 46 | <Unit4> 47 | <Filename Value="testunit.pas"/> 48 | <ComponentName Value="Form2"/> 49 | <HasResources Value="True"/> 50 | <ResourceBaseClass Value="Form"/> 51 | <EditorIndex Value="-1"/> 52 | <UsageCount Value="55"/> 53 | </Unit4> 54 | <Unit5> 55 | <Filename Value="testeunit2.pas"/> 56 | <ComponentName Value="FormTestListbox"/> 57 | <HasResources Value="True"/> 58 | <ResourceBaseClass Value="Form"/> 59 | <EditorIndex Value="-1"/> 60 | <TopLine Value="37"/> 61 | <CursorPos X="12" Y="55"/> 62 | <UsageCount Value="40"/> 63 | </Unit5> 64 | <Unit6> 65 | <Filename Value="C:\lazarus\lcl\extctrls.pp"/> 66 | <UnitName Value="ExtCtrls"/> 67 | <EditorIndex Value="-1"/> 68 | <TopLine Value="592"/> 69 | <CursorPos X="14" Y="610"/> 70 | <UsageCount Value="19"/> 71 | </Unit6> 72 | <Unit7> 73 | <Filename Value="C:\lazarus\lcl\controls.pp"/> 74 | <UnitName Value="Controls"/> 75 | <EditorIndex Value="-1"/> 76 | <TopLine Value="2331"/> 77 | <CursorPos X="3" Y="2350"/> 78 | <UsageCount Value="9"/> 79 | </Unit7> 80 | <Unit8> 81 | <Filename Value="C:\lazarus\lcl\include\brush.inc"/> 82 | <EditorIndex Value="-1"/> 83 | <TopLine Value="6"/> 84 | <CursorPos Y="37"/> 85 | <UsageCount Value="9"/> 86 | </Unit8> 87 | <Unit9> 88 | <Filename Value="C:\lazarus\lcl\include\customform.inc"/> 89 | <EditorIndex Value="-1"/> 90 | <TopLine Value="442"/> 91 | <CursorPos Y="460"/> 92 | <UsageCount Value="15"/> 93 | </Unit9> 94 | <Unit10> 95 | <Filename Value="C:\lazarus\lcl\lclmessageglue.pas"/> 96 | <UnitName Value="LCLMessageGlue"/> 97 | <EditorIndex Value="-1"/> 98 | <TopLine Value="98"/> 99 | <CursorPos Y="116"/> 100 | <UsageCount Value="9"/> 101 | </Unit10> 102 | <Unit11> 103 | <Filename Value="C:\lazarus\fpc\3.2.0\source\packages\rtl-console\src\inc\keybrdh.inc"/> 104 | <EditorIndex Value="-1"/> 105 | <TopLine Value="3"/> 106 | <CursorPos X="3" Y="21"/> 107 | <UsageCount Value="13"/> 108 | </Unit11> 109 | <Unit12> 110 | <Filename Value="..\..\..\usr\share\fpcsrc\3.2.0\rtl\objpas\sysutils\sysstrh.inc"/> 111 | <EditorIndex Value="-1"/> 112 | <TopLine Value="90"/> 113 | <CursorPos X="10" Y="108"/> 114 | <UsageCount Value="12"/> 115 | </Unit12> 116 | </Units> 117 | <JumpHistory Count="30" HistoryIndex="29"> 118 | <Position1> 119 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 120 | <Caret Line="192" Column="50" TopLine="173"/> 121 | </Position1> 122 | <Position2> 123 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 124 | <Caret Line="316" Column="15" TopLine="287"/> 125 | </Position2> 126 | <Position3> 127 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 128 | <Caret Line="318" Column="9" TopLine="289"/> 129 | </Position3> 130 | <Position4> 131 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 132 | <Caret Line="319" Column="10" TopLine="290"/> 133 | </Position4> 134 | <Position5> 135 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 136 | <Caret Line="346" Column="24" TopLine="317"/> 137 | </Position5> 138 | <Position6> 139 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 140 | <Caret Line="347" Column="25" TopLine="318"/> 141 | </Position6> 142 | <Position7> 143 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 144 | <Caret Line="378" Column="27" TopLine="349"/> 145 | </Position7> 146 | <Position8> 147 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 148 | <Caret Line="75" Column="19" TopLine="58"/> 149 | </Position8> 150 | <Position9> 151 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 152 | <Caret Line="76" Column="21" TopLine="58"/> 153 | </Position9> 154 | <Position10> 155 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 156 | <Caret Line="83" Column="8" TopLine="57"/> 157 | </Position10> 158 | <Position11> 159 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 160 | <Caret Line="318" Column="9" TopLine="287"/> 161 | </Position11> 162 | <Position12> 163 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 164 | <Caret Line="190" Column="92" TopLine="173"/> 165 | </Position12> 166 | <Position13> 167 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 168 | <Caret Line="260" TopLine="260"/> 169 | </Position13> 170 | <Position14> 171 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 172 | <Caret Line="259" TopLine="259"/> 173 | </Position14> 174 | <Position15> 175 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 176 | <Caret Line="258" TopLine="258"/> 177 | </Position15> 178 | <Position16> 179 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 180 | <Caret Line="146" TopLine="138"/> 181 | </Position16> 182 | <Position17> 183 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 184 | <Caret Line="260" TopLine="227"/> 185 | </Position17> 186 | <Position18> 187 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 188 | <Caret Line="343" TopLine="326"/> 189 | </Position18> 190 | <Position19> 191 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 192 | <Caret Line="75" TopLine="67"/> 193 | </Position19> 194 | <Position20> 195 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 196 | <Caret Line="310" TopLine="305"/> 197 | </Position20> 198 | <Position21> 199 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 200 | <Caret Line="62" TopLine="54"/> 201 | </Position21> 202 | <Position22> 203 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 204 | <Caret Line="145" Column="28" TopLine="127"/> 205 | </Position22> 206 | <Position23> 207 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 208 | <Caret Line="38" Column="7" TopLine="23"/> 209 | </Position23> 210 | <Position24> 211 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 212 | <Caret Line="121" Column="120" TopLine="106"/> 213 | </Position24> 214 | <Position25> 215 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 216 | <Caret Line="151" Column="28" TopLine="115"/> 217 | </Position25> 218 | <Position26> 219 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 220 | <Caret Line="150" Column="28" TopLine="122"/> 221 | </Position26> 222 | <Position27> 223 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 224 | <Caret Line="216" TopLine="104"/> 225 | </Position27> 226 | <Position28> 227 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 228 | <Caret Line="126" Column="54" TopLine="104"/> 229 | </Position28> 230 | <Position29> 231 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 232 | <Caret Line="244" Column="8" TopLine="233"/> 233 | </Position29> 234 | <Position30> 235 | <Filename Value="src\acbrscriptgui.view.main.pas"/> 236 | <Caret Line="119" Column="17" TopLine="116"/> 237 | </Position30> 238 | </JumpHistory> 239 | <RunParams> 240 | <FormatVersion Value="2"/> 241 | <Modes Count="0" ActiveMode=""/> 242 | </RunParams> 243 | </ProjectSession> 244 | <Debugging> 245 | <Watches Count="3"> 246 | <Item1> 247 | <Expression Value="AKey"/> 248 | </Item1> 249 | <Item2> 250 | <Expression Value="AProcess.Parameters.Text"/> 251 | </Item2> 252 | <Item3> 253 | <Expression Value="s"/> 254 | </Item3> 255 | </Watches> 256 | </Debugging> 257 | </CONFIG> 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 | --------------------------------------------------------------------------------