FormSesProperty.pas 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. {Formulario que se compartirá para poder editar las propiedades de una sesión.}
  2. unit FormSesProperty;
  3. {$mode objfpc}{$H+}
  4. interface
  5. uses
  6. Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls,
  7. Types, ExtCtrls, Buttons, Spin, SynEdit,
  8. FrameCfgSynEdit, FrameCfgSyntax, Globales;
  9. type
  10. TTipEnvio = (teComando, teArchivo);
  11. { TfrmSesProperty }
  12. TfrmSesProperty = class(TForm)
  13. published
  14. bitOK: TBitBtn;
  15. bitOK_conn: TBitBtn;
  16. bitCancel: TBitBtn;
  17. cbutBackCol: TColorButton;
  18. cbutBackCol1: TColorButton;
  19. cbutFonPan: TColorButton;
  20. cbutFonPan1: TColorButton;
  21. cbutLinAct: TColorButton;
  22. cbutLinAct1: TColorButton;
  23. cbutResPal: TColorButton;
  24. cbutResPal1: TColorButton;
  25. cbutTexto: TColorButton;
  26. cbutTexto1: TColorButton;
  27. cbutTxtPan: TColorButton;
  28. cbutTxtPan1: TColorButton;
  29. chkShowTerm: TCheckBox;
  30. chkShowPCom: TCheckBox;
  31. chkHLCurWord1: TCheckBox;
  32. chkMarLinAct1: TCheckBox;
  33. chkSendRecCom: TCheckBox;
  34. chkCodFolding: TCheckBox;
  35. chkCompletCode: TCheckBox;
  36. chkCurSigPrmpt: TCheckBox;
  37. chkDetecPrompt: TCheckBox;
  38. chkInterDirec: TCheckBox;
  39. chkMarLinAct: TCheckBox;
  40. chkHLCurWord: TCheckBox;
  41. chkSendLnCtrEnter: TCheckBox;
  42. chkSendLnEnter: TCheckBox;
  43. chkUsarPrep: TCheckBox;
  44. chkVerBarDesH: TCheckBox;
  45. chkVerBarDesH1: TCheckBox;
  46. chkVerBarDesV: TCheckBox;
  47. chkVerBarDesV1: TCheckBox;
  48. chkVerMarPle: TCheckBox;
  49. chkVerMarPle1: TCheckBox;
  50. chkVerNumLin: TCheckBox;
  51. chkVerNumLin1: TCheckBox;
  52. chkVerPanVer: TCheckBox;
  53. chkVerPanVer1: TCheckBox;
  54. cmbIP: TComboBox;
  55. cmbSerPort: TComboBox;
  56. cmbTipoLetra: TComboBox;
  57. cmbTipoLetra1: TComboBox;
  58. cmdTestComm: TButton;
  59. ComboBox1: TComboBox;
  60. ComboBox2: TComboBox;
  61. txtEdiUser: TEdit;
  62. txtEdiPass: TEdit;
  63. Label10: TLabel;
  64. Label11: TLabel;
  65. Label12: TLabel;
  66. Label9: TLabel;
  67. radGroupExpType: TRadioGroup;
  68. radGroupEdtType: TRadioGroup;
  69. TabGenSyntax: TTabSheet;
  70. TabExplor: TTabSheet;
  71. txtExternEdit: TEdit;
  72. Label8: TLabel;
  73. GroupBox1: TGroupBox;
  74. grpVertPan: TGroupBox;
  75. GroupBox3: TGroupBox;
  76. grpVertPan1: TGroupBox;
  77. Label1: TLabel;
  78. Label7: TLabel;
  79. lblBackCol: TLabel;
  80. lblBackCol1: TLabel;
  81. lblCLinAct1: TLabel;
  82. lblCurWordCol1: TLabel;
  83. lblFontName1: TLabel;
  84. lblFontSize1: TLabel;
  85. lblTextCol: TLabel;
  86. lblTextCol1: TLabel;
  87. lblVPbckCol: TLabel;
  88. lblVPbckCol1: TLabel;
  89. lblVPtxtCol: TLabel;
  90. lblCurWordCol: TLabel;
  91. Label15: TLabel;
  92. Label2: TLabel;
  93. Label3: TLabel;
  94. Label4: TLabel;
  95. Label5: TLabel;
  96. Label6: TLabel;
  97. lblCLinAct: TLabel;
  98. lblFontName: TLabel;
  99. lblFontSize: TLabel;
  100. lblIP: TLabel;
  101. lblOtro: TLabel;
  102. lblPort: TLabel;
  103. lblSerCfg: TLabel;
  104. lblSerPort: TLabel;
  105. lblVPtxtCol1: TLabel;
  106. optComando: TRadioButton;
  107. optOtro: TRadioButton;
  108. optScript: TRadioButton;
  109. optSerial: TRadioButton;
  110. optSSH: TRadioButton;
  111. optTelnet: TRadioButton;
  112. PageControl1: TPageControl;
  113. Panel1: TPanel;
  114. RadioButton1: TRadioButton;
  115. RadioButton2: TRadioButton;
  116. RadioButton3: TRadioButton;
  117. RadioButton4: TRadioButton;
  118. RadioGroup1: TRadioGroup;
  119. RadioGroup2: TRadioGroup;
  120. speTempo: TSpinEdit;
  121. spFontSize: TSpinEdit;
  122. spFontSize1: TSpinEdit;
  123. TabGenConnec: TTabSheet;
  124. TabGenPrmtDet: TTabSheet;
  125. TabPComSet: TTabSheet;
  126. TabGenAppear: TTabSheet;
  127. TabEditSett: TTabSheet;
  128. TabTermCRec: TTabSheet;
  129. TabPComEdit: TTabSheet;
  130. TabTermEdit: TTabSheet;
  131. TabTermPant: TTabSheet;
  132. TreeView1: TTreeView;
  133. txtArchivo: TEdit;
  134. txtCadFin: TEdit;
  135. txtCadIni: TEdit;
  136. txtComando: TEdit;
  137. txtExternExplor: TEdit;
  138. txtMaxColT: TEdit;
  139. txtMaxLinT: TEdit;
  140. txtOtro: TEdit;
  141. txtPort: TEdit;
  142. txtSerCfg: TEdit;
  143. procedure bitOKClick(Sender: TObject);
  144. procedure bitCancelClick(Sender: TObject);
  145. procedure chkSendRecComChange(Sender: TObject);
  146. procedure chkDetecPromptChange(Sender: TObject);
  147. procedure chkMarLinActChange(Sender: TObject);
  148. procedure chkHLCurWordChange(Sender: TObject);
  149. procedure chkVerPanVerChange(Sender: TObject);
  150. procedure cmdTestCommClick(Sender: TObject);
  151. procedure FormCreate(Sender: TObject);
  152. procedure optOtroChange(Sender: TObject);
  153. procedure optSerialChange(Sender: TObject);
  154. procedure optSSHChange(Sender: TObject);
  155. procedure optTelnetChange(Sender: TObject);
  156. procedure radGroupEdtTypeClick(Sender: TObject);
  157. procedure radGroupExpTypeClick(Sender: TObject);
  158. procedure TabTermEditContextPopup(Sender: TObject; MousePos: TPoint;
  159. var Handled: Boolean);
  160. procedure TreeView1Click(Sender: TObject);
  161. private
  162. procedure Ocultar;
  163. public
  164. OnTest : procedure of object;
  165. fraCfgSyntax : TfraCfgSyntax;
  166. procedure Exec(connected: boolean);
  167. end;
  168. var
  169. frmSesProperty: TfrmSesProperty;
  170. implementation
  171. {$R *.lfm}
  172. procedure TfrmSesProperty.Ocultar;
  173. //Oculta todos los controles de configuración
  174. begin
  175. lblIP.Visible:=false;
  176. cmbIP.Visible:=false;
  177. lblPort.Visible:=false;
  178. txtPort.Visible:=false;
  179. lblOtro.Visible:=false;
  180. txtOtro.Visible:=false;
  181. // GroupBox1.Visible:=false;
  182. lblSerPort.Visible:=false;
  183. cmbSerPort.Visible:=false;
  184. lblSerCfg.Visible:=false;
  185. txtSerCfg.Visible:=false;
  186. end;
  187. procedure TfrmSesProperty.optTelnetChange(Sender: TObject);
  188. begin
  189. Ocultar;
  190. lblIP.Visible:=true;
  191. cmbIP.Visible:=true;
  192. lblPort.Visible:=true;
  193. txtPort.Visible:=true;
  194. txtPort.Text:='23';
  195. RadioGroup1.ItemIndex:=2;
  196. end;
  197. procedure TfrmSesProperty.radGroupEdtTypeClick(Sender: TObject);
  198. begin
  199. //Deshabilita todos los controles
  200. label8.Enabled := false;
  201. txtExternEdit.Enabled := false;
  202. label11.Enabled := false;
  203. txtEdiUser.Enabled := false;
  204. label12.Enabled := false;
  205. txtEdiPass.Enabled := false;
  206. //Habilita de acuerdo a tipo
  207. case radGroupEdtType.ItemIndex of
  208. 0: begin //Edición local
  209. // //Editor local pero externo.
  210. // label8.Enabled := true;
  211. // txtExternEdit.Enabled := true;
  212. end;
  213. 1: begin
  214. label11.Enabled := true;
  215. txtEdiUser.Enabled := true;
  216. label12.Enabled := true;
  217. txtEdiPass.Enabled := true;
  218. end;
  219. 2: begin
  220. end;
  221. end;
  222. end;
  223. procedure TfrmSesProperty.radGroupExpTypeClick(Sender: TObject);
  224. begin
  225. if radGroupExpType.ItemIndex = 1 then begin
  226. label10.Enabled := true;
  227. txtExternExplor.Enabled := true;
  228. end else begin
  229. label10.Enabled := false;
  230. txtExternExplor.Enabled := false;
  231. end;
  232. end;
  233. procedure TfrmSesProperty.TabTermEditContextPopup(Sender: TObject;
  234. MousePos: TPoint; var Handled: Boolean);
  235. begin
  236. end;
  237. procedure TfrmSesProperty.TreeView1Click(Sender: TObject);
  238. begin
  239. if TreeView1.Selected = nil then exit;
  240. //hay ítem seleccionado
  241. case IdFromTTreeNode(TreeView1.Selected) of
  242. '1',
  243. '1.1' : TabGenConnec.Show;
  244. '1.2' : TabGenPrmtDet.Show;
  245. '1.3' : TabGenAppear.Show;
  246. '1.4' : TabGenSyntax.Show;
  247. '2',
  248. '2.1' : TabPComEdit.Show;
  249. '2.2' : TabPComSet.Show;
  250. '3',
  251. '3.1' : TabTermPant.Show;
  252. '3.2' : TabTermEdit.Show;
  253. '3.3' : TabTermCRec.Show;
  254. '4' : TabEditSett.Show;
  255. '5' : TabExplor.Show;
  256. end;
  257. //Visibilidad de botón
  258. bitOK_conn.Visible := (PageControl1.TabIndex = 0);
  259. end;
  260. procedure TfrmSesProperty.optSSHChange(Sender: TObject);
  261. begin
  262. Ocultar;
  263. lblIP.Visible:=true;
  264. cmbIP.Visible:=true;
  265. lblPort.Visible:=true;
  266. txtPort.Visible:=true;
  267. txtPort.Text:='22';
  268. RadioGroup1.ItemIndex:=2;
  269. end;
  270. procedure TfrmSesProperty.optSerialChange(Sender: TObject);
  271. begin
  272. Ocultar;
  273. lblSerPort.Visible:=true;
  274. cmbSerPort.Visible:=true;
  275. lblSerCfg.Visible:=true;
  276. txtSerCfg.Visible:=true;
  277. end;
  278. procedure TfrmSesProperty.optOtroChange(Sender: TObject);
  279. begin
  280. Ocultar;
  281. lblOtro.Visible:=true;
  282. txtOtro.Visible:=true;
  283. // GroupBox1.Visible:=true;
  284. end;
  285. procedure TfrmSesProperty.bitOKClick(Sender: TObject);
  286. begin
  287. //Devolverá el ModalResult que esté configurado.
  288. //bitAplicarClick(Self);
  289. //if fraError<>nil then exit; //hubo error
  290. //fcConex.GrabarIP;
  291. //self.Close; //porque es modal
  292. end;
  293. procedure TfrmSesProperty.bitCancelClick(Sender: TObject);
  294. begin
  295. //Devolverá el ModalResult que esté configurado.
  296. self.Hide;
  297. end;
  298. procedure TfrmSesProperty.chkSendRecComChange(Sender: TObject);
  299. begin
  300. speTempo.Enabled:=chkSendRecCom.checked;
  301. label15.Enabled:=chkSendRecCom.checked;
  302. GroupBox3.Enabled:=chkSendRecCom.checked;
  303. cmdTestComm.Enabled:=chkSendRecCom.checked;
  304. end;
  305. procedure TfrmSesProperty.chkDetecPromptChange(Sender: TObject);
  306. begin
  307. GroupBox1.Enabled:=chkDetecPrompt.Checked;
  308. end;
  309. procedure TfrmSesProperty.chkMarLinActChange(Sender: TObject);
  310. begin
  311. lblCLinAct.Enabled:=chkMarLinAct.Checked;
  312. cbutLinAct.Enabled:=chkMarLinAct.Checked;
  313. end;
  314. procedure TfrmSesProperty.chkHLCurWordChange(Sender: TObject);
  315. begin
  316. lblCurWordCol.Enabled:=chkHLCurWord.Checked;
  317. cbutResPal.Enabled:=chkHLCurWord.Checked;
  318. end;
  319. procedure TfrmSesProperty.chkVerPanVerChange(Sender: TObject);
  320. begin
  321. chkVerNumLin.Enabled:=chkVerPanVer.Checked;
  322. chkVerMarPle.Enabled:=chkVerPanVer.Checked;
  323. cbutFonPan.Enabled:=chkVerPanVer.Checked;
  324. cbutTxtPan.Enabled:=chkVerPanVer.Checked;
  325. label2.Enabled:=chkVerPanVer.Checked;
  326. label3.Enabled:=chkVerPanVer.Checked;
  327. end;
  328. procedure TfrmSesProperty.cmdTestCommClick(Sender: TObject);
  329. begin
  330. //lama al evento para probar la temporización
  331. OnTest;
  332. end;
  333. procedure TfrmSesProperty.FormCreate(Sender: TObject);
  334. begin
  335. fraCfgSyntax := TfraCfgSyntax.Create(self);
  336. fraCfgSyntax.Parent := TabGenSyntax;
  337. fraCfgSyntax.Left := 0;
  338. fraCfgSyntax.Top := 0;
  339. PageControl1.ShowTabs := false;
  340. cmbTipoLetra.Items.Clear;
  341. cmbTipoLetra.Items.Add('Courier New');
  342. cmbTipoLetra.Items.Add('Fixedsys');
  343. cmbTipoLetra.Items.Add('Lucida Console');
  344. cmbTipoLetra.Items.Add('Consolas');
  345. cmbTipoLetra.Items.Add('Cambria');
  346. cmbTipoLetra1.Items.Clear;
  347. cmbTipoLetra1.Items.Add('Courier New');
  348. cmbTipoLetra1.Items.Add('Fixedsys');
  349. cmbTipoLetra1.Items.Add('Lucida Console');
  350. cmbTipoLetra1.Items.Add('Consolas');
  351. cmbTipoLetra1.Items.Add('Cambria');
  352. end;
  353. procedure TfrmSesProperty.Exec(connected: boolean);
  354. {Muestra el formulario actual.}
  355. begin
  356. //Selecciona primera opción.
  357. TreeView1.Items[0].Selected:=true;
  358. TreeView1Click(self);
  359. if connected then begin
  360. TabGenConnec.Enabled := false;
  361. end else begin
  362. TabGenConnec.Enabled := true;
  363. end;
  364. self.ShowModal;
  365. end;
  366. end.