/windows/src/ext/jedi/jvcl/tests/archive/jvcl/examples/RegTV/RegTVMainFormU.pas

https://github.com/keymanapp/keyman · Pascal · 251 lines · 210 code · 25 blank · 16 comment · 7 complexity · 33b0bb519af2509837961e0f9faeaf69 MD5 · raw file

  1. {$I JVCL.INC}
  2. unit RegTVMainFormU;
  3. interface
  4. uses
  5. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  6. Dialogs, ComCtrls, JvRegTV, ExtCtrls, Menus, ActnList;
  7. type
  8. TRegTVMainForm = class(TForm)
  9. StatusBar1: TStatusBar;
  10. RegistryTreeView1: TJvRegistryTreeView;
  11. ListView1: TListView;
  12. Splitter1: TSplitter;
  13. mmMain: TMainMenu;
  14. Registry1: TMenuItem;
  15. Importregistryfile1: TMenuItem;
  16. Exportregistryfile1: TMenuItem;
  17. N1: TMenuItem;
  18. Connectnetworkdrive1: TMenuItem;
  19. Disconnectnetworkdrive1: TMenuItem;
  20. N2: TMenuItem;
  21. Print1: TMenuItem;
  22. N3: TMenuItem;
  23. Exit1: TMenuItem;
  24. Edit1: TMenuItem;
  25. New1: TMenuItem;
  26. Key1: TMenuItem;
  27. N4: TMenuItem;
  28. Stringvalue1: TMenuItem;
  29. Binaryvalue1: TMenuItem;
  30. DWORDvalue1: TMenuItem;
  31. N5: TMenuItem;
  32. Delete1: TMenuItem;
  33. Rename1: TMenuItem;
  34. N6: TMenuItem;
  35. Copykeyname1: TMenuItem;
  36. N7: TMenuItem;
  37. Find1: TMenuItem;
  38. FindNext1: TMenuItem;
  39. View1: TMenuItem;
  40. Statusbar2: TMenuItem;
  41. N8: TMenuItem;
  42. Refresh1: TMenuItem;
  43. Favorites1: TMenuItem;
  44. Addtofavorites1: TMenuItem;
  45. Deletefavorite1: TMenuItem;
  46. N10: TMenuItem;
  47. Help1: TMenuItem;
  48. HelpIndex1: TMenuItem;
  49. N11: TMenuItem;
  50. AboutRegistryeditordemo1: TMenuItem;
  51. alMain: TActionList;
  52. acImport: TAction;
  53. acExport: TAction;
  54. acConnectNetwork: TAction;
  55. acDisconnectNetwork: TAction;
  56. acPrint: TAction;
  57. acExit: TAction;
  58. acNewKey: TAction;
  59. acNewString: TAction;
  60. acNewBinary: TAction;
  61. acNewDWORD: TAction;
  62. acDelete: TAction;
  63. acRename: TAction;
  64. acCopyName: TAction;
  65. acFind: TAction;
  66. acFindNext: TAction;
  67. acStatusBar: TAction;
  68. acRefresh: TAction;
  69. acAddFav: TAction;
  70. acDelFav: TAction;
  71. acHelp: TAction;
  72. acAbout: TAction;
  73. procedure RegistryTreeView1Expanding(Sender: TObject; Node: TTreeNode;
  74. var AllowExpansion: Boolean);
  75. procedure RegistryTreeView1Expanded(Sender: TObject; Node: TTreeNode);
  76. procedure RegistryTreeView1Change(Sender: TObject; Node: TTreeNode);
  77. procedure Refresh1Click(Sender: TObject);
  78. procedure Statusbar2Click(Sender: TObject);
  79. procedure Delete1Click(Sender: TObject);
  80. procedure AboutRegistryeditordemo1Click(Sender: TObject);
  81. procedure Rename1Click(Sender: TObject);
  82. procedure Key1Click(Sender: TObject);
  83. procedure Addtofavorites1Click(Sender: TObject);
  84. procedure Importregistryfile1Click(Sender: TObject);
  85. procedure Exportregistryfile1Click(Sender: TObject);
  86. procedure Connectnetworkdrive1Click(Sender: TObject);
  87. procedure Disconnectnetworkdrive1Click(Sender: TObject);
  88. procedure Exit1Click(Sender: TObject);
  89. private
  90. procedure DoFavoriteClick(Sender: TObject);
  91. end;
  92. var
  93. RegTVMainForm: TRegTVMainForm;
  94. implementation
  95. uses
  96. Registry;
  97. {$R *.dfm}
  98. procedure TRegTVMainForm.RegistryTreeView1Expanding(Sender: TObject;
  99. Node: TTreeNode; var AllowExpansion: Boolean);
  100. begin
  101. Screen.Cursor := crHourGlass;
  102. end;
  103. procedure TRegTVMainForm.RegistryTreeView1Expanded(Sender: TObject;
  104. Node: TTreeNode);
  105. begin
  106. Screen.Cursor := crDefault;
  107. end;
  108. procedure TRegTVMainForm.RegistryTreeView1Change(Sender: TObject; Node: TTreeNode);
  109. begin
  110. StatusBar1.Panels[0].Text := RegistryTreeView1.CurrentPath;
  111. end;
  112. procedure TRegTVMainForm.Refresh1Click(Sender: TObject);
  113. begin
  114. Screen.Cursor := crHourGlass;
  115. try
  116. RegistryTreeView1.RefreshNode(RegistryTreeView1.Selected);
  117. finally
  118. Screen.Cursor := crDefault;
  119. end;
  120. end;
  121. procedure TRegTVMainForm.Statusbar2Click(Sender: TObject);
  122. begin
  123. StatusBar1.Visible := Statusbar2.Checked;
  124. end;
  125. procedure TRegTVMainForm.Delete1Click(Sender: TObject);
  126. begin
  127. if RegistryTreeView1.Selected <> nil then
  128. RegistryTreeView1.Selected.Delete;
  129. end;
  130. procedure TRegTVMainForm.AboutRegistryeditordemo1Click(Sender: TObject);
  131. // var S,T,U:string;
  132. begin
  133. { with TVersionInfo.Create(Application.Exename) do
  134. try
  135. S := FileVersion;
  136. T := DateTimeToStr(FileDate);
  137. finally
  138. Free;
  139. end;
  140. ShowMessageFmt('Demo of the TRegistryTreeview component.'#13#10+
  141. 'Version: %s, Compile date: %s'#13#10#13#10+
  142. 'NOTE: edits are not saved to the registry.',
  143. [S,T]);}
  144. ShowMessage('Demo of the TRegistryTreeview component.'#13#10+
  145. 'NOTE: edits are not saved to the registry.');
  146. end;
  147. procedure TRegTVMainForm.Rename1Click(Sender: TObject);
  148. begin
  149. if RegistryTreeView1.Selected <> nil then
  150. RegistryTreeView1.Selected.EditText;
  151. end;
  152. procedure TRegTVMainForm.Key1Click(Sender: TObject);
  153. begin
  154. with RegistryTreeView1.Items.AddChild(RegistryTreeView1.Selected,'New Key') do
  155. begin
  156. ImageIndex := 1;
  157. SelectedIndex := 2;
  158. MakeVisible;
  159. EditText;
  160. end;
  161. end;
  162. procedure TRegTVMainForm.DoFavoriteClick(Sender:TObject);
  163. var N:TTreeNode;
  164. begin
  165. N := TTreeNode((Sender as TMenuItem).Tag);
  166. if N <> nil then
  167. begin
  168. N.Selected := true;
  169. N.Focused := true;
  170. N.MakeVisible;
  171. end;
  172. end;
  173. procedure TRegTVMainForm.Addtofavorites1Click(Sender: TObject);
  174. var S:string;m:TMenuItem;
  175. begin
  176. if RegistryTreeView1.Selected <> nil then
  177. begin
  178. S := RegistryTreeView1.CurrentPath;
  179. if InputQuery('Add to favorites','Name:',S) and (S <> '') then
  180. begin
  181. m := TMenuItem.Create(mmMain);
  182. m.Caption := S;
  183. m.Tag := integer(RegistryTreeView1.Selected);
  184. m.OnClick := DoFavoriteClick;
  185. m.AutoHotkeys := maManual;
  186. Favorites1.Add(m);
  187. end;
  188. end;
  189. end;
  190. procedure TRegTVMainForm.Importregistryfile1Click(Sender: TObject);
  191. begin
  192. with TOpenDialog.Create(nil) do
  193. try
  194. Filter := 'Registry files|*.reg;*.key|All files|*.*';
  195. InitialDir := '.';
  196. if Execute then
  197. RegistryTreeView1.LoadKey(Filename);
  198. finally
  199. Free;
  200. end;
  201. end;
  202. procedure TRegTVMainForm.Exportregistryfile1Click(Sender: TObject);
  203. begin
  204. with TSaveDialog.Create(nil) do
  205. try
  206. Filter := 'Registry files|*.reg;*.key|All files|*.*';
  207. InitialDir := '.';
  208. if Execute then
  209. RegistryTreeView1.SaveKey(Filename);
  210. finally
  211. Free;
  212. end;
  213. end;
  214. procedure TRegTVMainForm.Connectnetworkdrive1Click(Sender: TObject);
  215. begin
  216. // RegConnectRegistry();
  217. end;
  218. procedure TRegTVMainForm.Disconnectnetworkdrive1Click(Sender: TObject);
  219. begin
  220. // RegCloseKey(RemoteRegKey);
  221. end;
  222. procedure TRegTVMainForm.Exit1Click(Sender: TObject);
  223. begin
  224. Close;
  225. end;
  226. end.