Advertisement
HwapX

Backup Source Mult-Patcher

Nov 1st, 2015
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 44.75 KB | None | 0 0
  1. <!-- http://www.forum-invaders.com.br/vb/showthread.php/40266-Source-Mult-Patcher -->
  2.  
  3. Bom fiz este programa somente para matar o tempo.<br>
  4. <div style="text-align: center;"><img src="http://dl.dropbox.com/u/1227623/Imagens/Outros/Invaders/Patcher.jpg" alt="" border="0"><br>
  5. <br>
  6. </div><br>
  7. <hr><br>
  8. É um Patcher para múltiplos programas, ele carrega as informações de um XML com o seguinte formato.<br>
  9. <ul><li style=""><b>&lt;App&gt;</b> = Nó base de cada aplicação.<br>
  10. <ul><li style="">Atributo <b>Name</b> = Nome da aplicação.</li><li style="">Atributo <b>MD5</b> = Opcional Hash MD5 do arquivo para evitar que um arquivo incorreto seja escolhido.</li><li style=""><b>&lt;Binary&gt;</b> (Podem existir múltiplos nós para um mesmo arquivo) = Dados a serem inseridos formatados byte a byte "AA FF 11"...<br>
  11. <ul><li style="">Atributo <b>Offset</b> = Posição a partir dá qual inserir os dados.</li></ul></li></ul></li></ul><br>
  12. <br>
  13. Obs: Os Bytes e o Offset devem ser informados em formato Hexadecimal.<br>
  14. <br>
  15. <div class="bbcode_container">
  16.     <div class="bbcode_description">Código PHP:</div>
  17.     <div class="bbcode_code" style="height:132px;"><code><code><span style="color: #000000">
  18. <span style="color: #0000BB"></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">Applications</span><span style="color: #007700">&gt;
  19. <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">App&nbsp;Name</span><span style="color: #007700">=</span><span style="color: #DD0000">"AppName"&nbsp;</span><span style="color: #0000BB">MD5</span><span style="color: #007700">=</span><span style="color: #DD0000">"6271587C9C3067E16D857BAA4AC59004"</span><span style="color: #007700">&gt;
  20. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">Binary&nbsp;Offset</span><span style="color: #007700">=</span><span style="color: #DD0000">"00000000"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">00&nbsp;11&nbsp;22&nbsp;33&nbsp;44&nbsp;55&nbsp;66&nbsp;77&nbsp;88&nbsp;99</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">Binary</span><span style="color: #007700">&gt;
  21. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">Binary&nbsp;Offset</span><span style="color: #007700">=</span><span style="color: #DD0000">"000000FF"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">AA&nbsp;BB&nbsp;CC&nbsp;DD&nbsp;EE&nbsp;FF</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">Binary</span><span style="color: #007700">&gt;
  22. <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000BB">App</span><span style="color: #007700">&gt;
  23. <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">App&nbsp;Name</span><span style="color: #007700">=</span><span style="color: #DD0000">"Teste"</span><span style="color: #007700">&gt;
  24. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000BB">Binary&nbsp;Offset</span><span style="color: #007700">=</span><span style="color: #DD0000">"00000000"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">01&nbsp;02&nbsp;03&nbsp;04&nbsp;04&nbsp;05&nbsp;06&nbsp;07&nbsp;08&nbsp;09</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">Binary</span><span style="color: #007700">&gt;
  25. <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000BB">App</span><span style="color: #007700">&gt;
  26. <br>&lt;/</span><span style="color: #0000BB">Applications</span><span style="color: #007700">&gt;&nbsp;
  27. <br></span><span style="color: #0000BB"></span>
  28. </span>
  29. </code></code></div>
  30. </div><hr><br>
  31. <div style="text-align: center;"><a href="http://dl.dropbox.com/u/1227623/Downloads/Invaders/Patcher.7z" target="_blank" rel="nofollow"><img src="http://dl.dropbox.com/u/1227623/Imagens/download-icone.jpg" alt="" border="0"></a><br>
  32. <a href="http://dl.dropbox.com/u/1227623/Downloads/Invaders/Patcher.7z" target="_blank" rel="nofollow"><b>Download</b></a></div><br>
  33. <hr><br>
  34. Somente para constar utilizei o <b>Delphi XE2</b><br>
  35. <br>
  36. <div class="bbcode_container">
  37.     <div class="bbcode_description">Código PHP:</div>
  38.     <div class="bbcode_code" style="height:372px;"><code><code><span style="color: #000000">
  39. <span style="color: #0000BB">unit&nbsp;UnitPatcher</span><span style="color: #007700">;
  40. <br>
  41. <br>interface
  42. <br>
  43. <br></span><span style="color: #0000BB">uses
  44. <br>&nbsp;&nbsp;Winapi</span><span style="color: #007700">.</span><span style="color: #0000BB">Windows</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Winapi</span><span style="color: #007700">.</span><span style="color: #0000BB">Messages</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">System</span><span style="color: #007700">.</span><span style="color: #0000BB">SysUtils</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">System</span><span style="color: #007700">.</span><span style="color: #0000BB">Variants</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">System</span><span style="color: #007700">.</span><span style="color: #0000BB">Classes</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">Graphics</span><span style="color: #007700">,
  45. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">Controls</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">Forms</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">Dialogs</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">StdCtrls</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">ExtCtrls</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Generics</span><span style="color: #007700">.</span><span style="color: #0000BB">Collections</span><span style="color: #007700">,
  46. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Vcl</span><span style="color: #007700">.</span><span style="color: #0000BB">Imaging</span><span style="color: #007700">.</span><span style="color: #0000BB">jpeg</span><span style="color: #007700">;
  47. <br>
  48. <br></span><span style="color: #0000BB">type
  49. <br>&nbsp;&nbsp;TFrmPatcher&nbsp;</span><span style="color: #007700">=&nbsp;class(</span><span style="color: #0000BB">TForm</span><span style="color: #007700">)
  50. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Image1</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TImage</span><span style="color: #007700">;
  51. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TComboBox</span><span style="color: #007700">;
  52. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Label1</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TLabel</span><span style="color: #007700">;
  53. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">BtnPatch</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TButton</span><span style="color: #007700">;
  54. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">procedure&nbsp;FormCreate</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  55. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">procedure&nbsp;BtnPatchClick</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  56. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">procedure&nbsp;FormDestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  57. <br>&nbsp;&nbsp;private
  58. <br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Private&nbsp;</span><span style="color: #0000BB">declarations&nbsp;</span><span style="color: #007700">}
  59. <br>&nbsp;&nbsp;public
  60. <br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Public&nbsp;</span><span style="color: #0000BB">declarations&nbsp;</span><span style="color: #007700">}
  61. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  62. <br>&nbsp;&nbsp;
  63. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">OffsetData&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">record
  64. <br>&nbsp;&nbsp;&nbsp;&nbsp;Offset</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  65. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Data</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">Byte</span><span style="color: #007700">&gt;;
  66. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  67. <br>
  68. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">AppInfo&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">record
  69. <br>&nbsp;&nbsp;&nbsp;&nbsp;Name</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">string</span><span style="color: #007700">;
  70. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MD5</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">string</span><span style="color: #007700">;
  71. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">OffsetData</span><span style="color: #007700">&gt;;
  72. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  73. <br>&nbsp;&nbsp;
  74. <br>var
  75. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">FrmPatcher</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TFrmPatcher</span><span style="color: #007700">;
  76. <br>
  77. <br></span><span style="color: #0000BB">implementation
  78. <br>
  79. <br>uses
  80. <br>&nbsp;&nbsp;System</span><span style="color: #007700">.</span><span style="color: #0000BB">StrUtils</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">System</span><span style="color: #007700">.</span><span style="color: #0000BB">Types</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">IdHashMessageDigest</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Xml</span><span style="color: #007700">.</span><span style="color: #0000BB">XMLDoc</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Xml</span><span style="color: #007700">.</span><span style="color: #0000BB">XMLIntf</span><span style="color: #007700">;
  81. <br>
  82. <br>var
  83. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">AppInfo</span><span style="color: #007700">&gt;;
  84. <br>
  85. <br>{</span><span style="color: #0000BB">$R&nbsp;</span><span style="color: #007700">*.</span><span style="color: #0000BB">dfm</span><span style="color: #007700">}
  86. <br>
  87. <br></span><span style="color: #0000BB">procedure&nbsp;TFrmPatcher</span><span style="color: #007700">.</span><span style="color: #0000BB">BtnPatchClick</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  88. <br>var
  89. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TOpenDialog</span><span style="color: #007700">;
  90. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TFileStream</span><span style="color: #007700">;
  91. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">OffsetData</span><span style="color: #007700">;
  92. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">MD5Hash</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TIdHashMessageDigest5</span><span style="color: #007700">;
  93. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">B</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Byte</span><span style="color: #007700">;
  94. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">I</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  95. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">N</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  96. <br></span><span style="color: #0000BB">begin
  97. <br>&nbsp;&nbsp;Dialog</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TOpenDialog</span><span style="color: #007700">.</span><span style="color: #0000BB">Create</span><span style="color: #007700">(</span><span style="color: #0000BB">Self</span><span style="color: #007700">);
  98. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">MD5Hash</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TIdHashMessageDigest5</span><span style="color: #007700">.</span><span style="color: #0000BB">Create</span><span style="color: #007700">;
  99. <br>&nbsp;&nbsp;try
  100. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">Options</span><span style="color: #007700">:=&nbsp;[</span><span style="color: #0000BB">ofOverwritePrompt</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ofHideReadOnly</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ofFileMustExist</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ofExtensionDifferent</span><span style="color: #007700">];
  101. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">Filter</span><span style="color: #007700">:=&nbsp;</span><span style="color: #DD0000">'Executable|*.exe|Any|*.*'</span><span style="color: #007700">;
  102. <br>&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">Execute</span><span style="color: #007700">(</span><span style="color: #0000BB">Self</span><span style="color: #007700">.</span><span style="color: #0000BB">Handle</span><span style="color: #007700">))</span><span style="color: #0000BB">then
  103. <br>&nbsp;&nbsp;&nbsp;&nbsp;begin
  104. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CopyFile</span><span style="color: #007700">(</span><span style="color: #0000BB">PWideChar</span><span style="color: #007700">(</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">FileName</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">PWideChar</span><span style="color: #007700">(</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">FileName&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #DD0000">'.bkp'</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">);
  105. <br>
  106. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TFileStream</span><span style="color: #007700">.</span><span style="color: #0000BB">Create</span><span style="color: #007700">(</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">FileName</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">fmOpenReadWrite</span><span style="color: #007700">);
  107. <br>
  108. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((</span><span style="color: #0000BB">MD5Hash</span><span style="color: #007700">.</span><span style="color: #0000BB">HashStreamAsHex</span><span style="color: #007700">(</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">)&nbsp;=&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">ItemIndex</span><span style="color: #007700">].</span><span style="color: #0000BB">MD5</span><span style="color: #007700">)&nbsp;or&nbsp;(</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">ItemIndex</span><span style="color: #007700">].</span><span style="color: #0000BB">MD5&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">))</span><span style="color: #0000BB">then
  109. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin
  110. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">I&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">ItemIndex</span><span style="color: #007700">].</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  111. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  112. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">ItemIndex</span><span style="color: #007700">].</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">];
  113. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">.</span><span style="color: #0000BB">Seek</span><span style="color: #007700">(</span><span style="color: #0000BB">Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Offset</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">soFromBeginning</span><span style="color: #007700">);&nbsp;
  114. <br>
  115. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;</span><span style="color: #0000BB">N&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Data</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  116. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  117. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Data</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">N</span><span style="color: #007700">];
  118. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">.</span><span style="color: #0000BB">Write</span><span style="color: #007700">(</span><span style="color: #0000BB">B</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);
  119. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  120. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  121. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  122. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">MessageBox</span><span style="color: #007700">(</span><span style="color: #DD0000">'Patch&nbsp;Successfully!'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'Patched'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">MB_OK&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">MB_ICONINFORMATION</span><span style="color: #007700">);
  123. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end
  124. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">else
  125. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  126. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raise</span><span style="color: #007700">(</span><span style="color: #0000BB">Exception</span><span style="color: #007700">.</span><span style="color: #0000BB">Create</span><span style="color: #007700">(</span><span style="color: #DD0000">'Invalid&nbsp;MD5&nbsp;hash'</span><span style="color: #007700">));
  127. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  128. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  129. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">except&nbsp;on&nbsp;E</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Exception&nbsp;</span><span style="color: #007700">do
  130. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">MessageBox</span><span style="color: #007700">(</span><span style="color: #0000BB">PWideChar</span><span style="color: #007700">(</span><span style="color: #0000BB">E</span><span style="color: #007700">.</span><span style="color: #0000BB">Message</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'Patch&nbsp;Failed'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">MB_OK&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">MB_ICONERROR</span><span style="color: #007700">);&nbsp;&nbsp;
  131. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  132. <br>&nbsp;&nbsp;
  133. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Dialog</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  134. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">MD5Hash</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  135. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">AppStream</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  136. <br></span><span style="color: #0000BB">end</span><span style="color: #007700">;
  137. <br>
  138. <br></span><span style="color: #0000BB">procedure&nbsp;TFrmPatcher</span><span style="color: #007700">.</span><span style="color: #0000BB">FormCreate</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  139. <br>var
  140. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TXMLDocument</span><span style="color: #007700">;
  141. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">IXMLNode</span><span style="color: #007700">;
  142. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">AppInfo</span><span style="color: #007700">;
  143. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">OffsetData</span><span style="color: #007700">;
  144. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Bytes</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TStringDynArray</span><span style="color: #007700">;
  145. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">I</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  146. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">N</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  147. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">B</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  148. <br></span><span style="color: #0000BB">begin
  149. <br>&nbsp;&nbsp;Apps</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">AppInfo</span><span style="color: #007700">&gt;.</span><span style="color: #0000BB">Create</span><span style="color: #007700">;
  150. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TXMLDocument</span><span style="color: #007700">.</span><span style="color: #0000BB">Create</span><span style="color: #007700">(</span><span style="color: #0000BB">Self</span><span style="color: #007700">);
  151. <br>&nbsp;&nbsp;
  152. <br>&nbsp;&nbsp;try
  153. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">LoadFromFile</span><span style="color: #007700">(</span><span style="color: #DD0000">'.\Applications.xml'</span><span style="color: #007700">);
  154. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">except&nbsp;on&nbsp;E</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Exception&nbsp;</span><span style="color: #007700">do
  155. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  156. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  157. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">MessageBox</span><span style="color: #007700">(</span><span style="color: #0000BB">PWideChar</span><span style="color: #007700">(</span><span style="color: #0000BB">E</span><span style="color: #007700">.</span><span style="color: #0000BB">Message</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'Fatal&nbsp;Error'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">MB_OK&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">MB_ICONERROR</span><span style="color: #007700">);
  158. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">Terminate</span><span style="color: #007700">;
  159. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end
  160. <br>&nbsp;&nbsp;end</span><span style="color: #007700">;
  161. <br>
  162. <br>&nbsp;&nbsp;try
  163. <br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;</span><span style="color: #0000BB">I&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">[</span><span style="color: #DD0000">'Applications'</span><span style="color: #007700">].</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  164. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  165. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;App</span><span style="color: #007700">.</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">OffsetData</span><span style="color: #007700">&gt;.</span><span style="color: #0000BB">Create</span><span style="color: #007700">;
  166. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">[</span><span style="color: #DD0000">'Applications'</span><span style="color: #007700">].</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">];
  167. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">.</span><span style="color: #0000BB">Name</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">.</span><span style="color: #0000BB">Attributes</span><span style="color: #007700">[</span><span style="color: #DD0000">'Name'</span><span style="color: #007700">];
  168. <br>
  169. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try
  170. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">.</span><span style="color: #0000BB">MD5</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">.</span><span style="color: #0000BB">Attributes</span><span style="color: #007700">[</span><span style="color: #DD0000">'MD5'</span><span style="color: #007700">];
  171. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">except
  172. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;App</span><span style="color: #007700">.</span><span style="color: #0000BB">MD5</span><span style="color: #007700">:=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;
  173. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  174. <br>
  175. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;</span><span style="color: #0000BB">N&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;NodeApp</span><span style="color: #007700">.</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  176. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  177. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Data</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">TList</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">Byte</span><span style="color: #007700">&gt;.</span><span style="color: #0000BB">Create</span><span style="color: #007700">;
  178. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Offset</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">StrToInt</span><span style="color: #007700">(</span><span style="color: #DD0000">'$'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">.</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">[</span><span style="color: #0000BB">N</span><span style="color: #007700">].</span><span style="color: #0000BB">Attributes</span><span style="color: #007700">[</span><span style="color: #DD0000">'Offset'</span><span style="color: #007700">]);
  179. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Bytes</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">SplitString</span><span style="color: #007700">(</span><span style="color: #0000BB">NodeApp</span><span style="color: #007700">.</span><span style="color: #0000BB">ChildNodes</span><span style="color: #007700">[</span><span style="color: #0000BB">N</span><span style="color: #007700">].</span><span style="color: #0000BB">Text</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'&nbsp;'</span><span style="color: #007700">);
  180. <br>&nbsp;&nbsp;
  181. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;</span><span style="color: #0000BB">B&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Length</span><span style="color: #007700">(</span><span style="color: #0000BB">Bytes</span><span style="color: #007700">)&nbsp;-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  182. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  183. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Data</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">StrToInt</span><span style="color: #007700">(</span><span style="color: #DD0000">'$'&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">Bytes</span><span style="color: #007700">[</span><span style="color: #0000BB">B</span><span style="color: #007700">]));
  184. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  185. <br>
  186. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">.</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">Offset</span><span style="color: #007700">);
  187. <br>
  188. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SetLength</span><span style="color: #007700">(</span><span style="color: #0000BB">Bytes</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);
  189. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Offset</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;
  190. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  191. <br>
  192. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">App</span><span style="color: #007700">);
  193. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">.</span><span style="color: #0000BB">Name</span><span style="color: #007700">:=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;
  194. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">App</span><span style="color: #007700">.</span><span style="color: #0000BB">MD5</span><span style="color: #007700">:=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;
  195. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  196. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">except&nbsp;on&nbsp;E</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Exception&nbsp;</span><span style="color: #007700">do
  197. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  198. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;App</span><span style="color: #007700">.</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  199. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Offset</span><span style="color: #007700">.</span><span style="color: #0000BB">Data</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  200. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  201. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  202. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">MessageBox</span><span style="color: #007700">(</span><span style="color: #0000BB">PWideChar</span><span style="color: #007700">(</span><span style="color: #0000BB">E</span><span style="color: #007700">.</span><span style="color: #0000BB">Message</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">'Fatal&nbsp;Error'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">MB_OK&nbsp;</span><span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">MB_ICONERROR</span><span style="color: #007700">);
  203. <br>
  204. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Application</span><span style="color: #007700">.</span><span style="color: #0000BB">Terminate</span><span style="color: #007700">;
  205. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end
  206. <br>&nbsp;&nbsp;end</span><span style="color: #007700">;
  207. <br>
  208. <br>&nbsp;&nbsp;for&nbsp;</span><span style="color: #0000BB">I&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  209. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  210. <br>&nbsp;&nbsp;&nbsp;&nbsp;CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">].</span><span style="color: #0000BB">Name</span><span style="color: #007700">);
  211. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  212. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">CmbApps</span><span style="color: #007700">.</span><span style="color: #0000BB">ItemIndex</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">;
  213. <br>
  214. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Doc</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  215. <br></span><span style="color: #0000BB">end</span><span style="color: #007700">;
  216. <br>
  217. <br></span><span style="color: #0000BB">procedure&nbsp;TFrmPatcher</span><span style="color: #007700">.</span><span style="color: #0000BB">FormDestroy</span><span style="color: #007700">(</span><span style="color: #0000BB">Sender</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">TObject</span><span style="color: #007700">);
  218. <br>var
  219. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">I</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  220. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">N</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Integer</span><span style="color: #007700">;
  221. <br></span><span style="color: #0000BB">begin
  222. <br>&nbsp;&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">I&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  223. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  224. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">N&nbsp;</span><span style="color: #007700">:=&nbsp;</span><span style="color: #0000BB">0&nbsp;to&nbsp;Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">].</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Count&nbsp;</span><span style="color: #007700">-</span><span style="color: #0000BB">1&nbsp;</span><span style="color: #007700">do
  225. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">begin
  226. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">].</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">N</span><span style="color: #007700">].</span><span style="color: #0000BB">Data</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  227. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  228. <br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Items</span><span style="color: #007700">[</span><span style="color: #0000BB">I</span><span style="color: #007700">].</span><span style="color: #0000BB">Offsets</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  229. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">end</span><span style="color: #007700">;
  230. <br>&nbsp;&nbsp;</span><span style="color: #0000BB">Apps</span><span style="color: #007700">.</span><span style="color: #0000BB">Free</span><span style="color: #007700">;
  231. <br></span><span style="color: #0000BB">end</span><span style="color: #007700">;
  232. <br>
  233. <br></span><span style="color: #0000BB">end</span><span style="color: #007700">.&nbsp;
  234. <br></span><span style="color: #0000BB"></span>
  235. </span>
  236. </code></code></div>
  237. </div>Espero que seja útil á alguém <img src="images/smilies/smile.gif" alt="" title="Sorrindo" class="inlineimg" border="0">.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement