FormSesProperty.pas 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  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. txtComLaunExpl: TEdit;
  72. txtExternEdit: TEdit;
  73. Label8: TLabel;
  74. txtComLaunEdit: TEdit;
  75. GroupBox1: TGroupBox;
  76. grpVertPan: TGroupBox;
  77. GroupBox3: TGroupBox;
  78. grpVertPan1: TGroupBox;
  79. Label1: TLabel;
  80. Label7: TLabel;
  81. lblBackCol: TLabel;
  82. lblBackCol1: TLabel;
  83. lblCLinAct1: TLabel;
  84. lblCurWordCol1: TLabel;
  85. lblFontName1: TLabel;
  86. lblFontSize1: TLabel;
  87. lblTextCol: TLabel;
  88. lblTextCol1: TLabel;
  89. lblVPbckCol: TLabel;
  90. lblVPbckCol1: TLabel;
  91. lblVPtxtCol: TLabel;
  92. lblCurWordCol: TLabel;
  93. Label15: TLabel;
  94. Label2: TLabel;
  95. Label3: TLabel;
  96. Label4: TLabel;
  97. Label5: TLabel;
  98. Label6: TLabel;
  99. lblCLinAct: TLabel;
  100. lblFontName: TLabel;
  101. lblFontSize: TLabel;
  102. lblIP: TLabel;
  103. lblOtro: TLabel;
  104. lblPort: TLabel;
  105. lblSerCfg: TLabel;
  106. lblSerPort: TLabel;
  107. lblVPtxtCol1: TLabel;
  108. optComando: TRadioButton;
  109. optOtro: TRadioButton;
  110. optScript: TRadioButton;
  111. optSerial: TRadioButton;
  112. optSSH: TRadioButton;
  113. optTelnet: TRadioButton;
  114. PageControl1: TPageControl;
  115. Panel1: TPanel;
  116. RadioButton1: TRadioButton;
  117. RadioButton2: TRadioButton;
  118. RadioButton3: TRadioButton;
  119. RadioButton4: TRadioButton;
  120. RadioGroup1: TRadioGroup;
  121. RadioGroup2: TRadioGroup;
  122. speTempo: TSpinEdit;
  123. spFontSize: TSpinEdit;
  124. spFontSize1: TSpinEdit;
  125. TabGenConnec: TTabSheet;
  126. TabGenPrmtDet: TTabSheet;
  127. TabPComSet: TTabSheet;
  128. TabGenAppear: TTabSheet;
  129. TabEditSett: TTabSheet;
  130. TabTermCRec: TTabSheet;
  131. TabPComEdit: TTabSheet;
  132. TabTermEdit: TTabSheet;
  133. TabTermPant: TTabSheet;
  134. TreeView1: TTreeView;
  135. txtArchivo: TEdit;
  136. txtCadFin: TEdit;
  137. txtCadIni: TEdit;
  138. txtComando: TEdit;
  139. txtExternExplor: TEdit;
  140. txtMaxColT: TEdit;
  141. txtMaxLinT: TEdit;
  142. txtOtro: TEdit;
  143. txtPort: TEdit;
  144. txtSerCfg: TEdit;
  145. procedure bitOKClick(Sender: TObject);
  146. procedure bitCancelClick(Sender: TObject);
  147. procedure chkSendRecComChange(Sender: TObject);
  148. procedure chkDetecPromptChange(Sender: TObject);
  149. procedure chkMarLinActChange(Sender: TObject);
  150. procedure chkHLCurWordChange(Sender: TObject);
  151. procedure chkVerPanVerChange(Sender: TObject);
  152. procedure cmdTestCommClick(Sender: TObject);
  153. procedure FormCreate(Sender: TObject);
  154. procedure optOtroChange(Sender: TObject);
  155. procedure optSerialChange(Sender: TObject);
  156. procedure optSSHChange(Sender: TObject);
  157. procedure optTelnetChange(Sender: TObject);
  158. procedure radGroupEdtTypeClick(Sender: TObject);
  159. procedure radGroupExpTypeClick(Sender: TObject);
  160. procedure TabTermEditContextPopup(Sender: TObject; MousePos: TPoint;
  161. var Handled: Boolean);
  162. procedure TreeView1Click(Sender: TObject);
  163. private
  164. procedure Ocultar;
  165. public
  166. OnTest : procedure of object;
  167. fraCfgSyntax : TfraCfgSyntax;
  168. procedure Exec(connected: boolean);
  169. end;
  170. var
  171. frmSesProperty: TfrmSesProperty;
  172. implementation
  173. {$R *.lfm}
  174. procedure TfrmSesProperty.Ocultar;
  175. //Oculta todos los controles de configuración
  176. begin
  177. lblIP.Visible:=false;
  178. cmbIP.Visible:=false;
  179. lblPort.Visible:=false;
  180. txtPort.Visible:=false;
  181. lblOtro.Visible:=false;
  182. txtOtro.Visible:=false;
  183. // GroupBox1.Visible:=false;
  184. lblSerPort.Visible:=false;
  185. cmbSerPort.Visible:=false;
  186. lblSerCfg.Visible:=false;
  187. txtSerCfg.Visible:=false;
  188. end;
  189. procedure TfrmSesProperty.optTelnetChange(Sender: TObject);
  190. begin
  191. Ocultar;
  192. lblIP.Visible:=true;
  193. cmbIP.Visible:=true;
  194. lblPort.Visible:=true;
  195. txtPort.Visible:=true;
  196. txtPort.Text:='23';
  197. RadioGroup1.ItemIndex:=2;
  198. end;
  199. procedure TfrmSesProperty.radGroupEdtTypeClick(Sender: TObject);
  200. begin
  201. //Deshabilita todos los controles
  202. label8.Enabled := false;
  203. txtExternEdit.Enabled := false;
  204. label11.Enabled := false;
  205. txtEdiUser.Enabled := false;
  206. label12.Enabled := false;
  207. txtEdiPass.Enabled := false;
  208. //Habilita de acuerdo a tipo
  209. case radGroupEdtType.ItemIndex of
  210. 0: begin //Edición local
  211. // //Editor local pero externo.
  212. // label8.Enabled := true;
  213. // txtExternEdit.Enabled := true;
  214. end;
  215. 1: begin
  216. label11.Enabled := true;
  217. txtEdiUser.Enabled := true;
  218. label12.Enabled := true;
  219. txtEdiPass.Enabled := true;
  220. end;
  221. 2: begin
  222. end;
  223. end;
  224. end;
  225. procedure TfrmSesProperty.radGroupExpTypeClick(Sender: TObject);
  226. begin
  227. if radGroupExpType.ItemIndex = 1 then begin
  228. label10.Enabled := true;
  229. txtExternExplor.Enabled := true;
  230. end else begin
  231. label10.Enabled := false;
  232. txtExternExplor.Enabled := false;
  233. end;
  234. end;
  235. procedure TfrmSesProperty.TabTermEditContextPopup(Sender: TObject;
  236. MousePos: TPoint; var Handled: Boolean);
  237. begin
  238. end;
  239. procedure TfrmSesProperty.TreeView1Click(Sender: TObject);
  240. begin
  241. if TreeView1.Selected = nil then exit;
  242. //hay ítem seleccionado
  243. case IdFromTTreeNode(TreeView1.Selected) of
  244. '1',
  245. '1.1' : TabGenConnec.Show;
  246. '1.2' : TabGenPrmtDet.Show;
  247. '1.3' : TabGenAppear.Show;
  248. '1.4' : TabGenSyntax.Show;
  249. '2',
  250. '2.1' : TabPComEdit.Show;
  251. '2.2' : TabPComSet.Show;
  252. '3',
  253. '3.1' : TabTermPant.Show;
  254. '3.2' : TabTermEdit.Show;
  255. '3.3' : TabTermCRec.Show;
  256. '4' : TabEditSett.Show;
  257. '5' : TabExplor.Show;
  258. end;
  259. //Visibilidad de botón
  260. bitOK_conn.Visible := (PageControl1.TabIndex = 0);
  261. end;
  262. procedure TfrmSesProperty.optSSHChange(Sender: TObject);
  263. begin
  264. Ocultar;
  265. lblIP.Visible:=true;
  266. cmbIP.Visible:=true;
  267. lblPort.Visible:=true;
  268. txtPort.Visible:=true;
  269. txtPort.Text:='22';
  270. RadioGroup1.ItemIndex:=2;
  271. end;
  272. procedure TfrmSesProperty.optSerialChange(Sender: TObject);
  273. begin
  274. Ocultar;
  275. lblSerPort.Visible:=true;
  276. cmbSerPort.Visible:=true;
  277. lblSerCfg.Visible:=true;
  278. txtSerCfg.Visible:=true;
  279. end;
  280. procedure TfrmSesProperty.optOtroChange(Sender: TObject);
  281. begin
  282. Ocultar;
  283. lblOtro.Visible:=true;
  284. txtOtro.Visible:=true;
  285. // GroupBox1.Visible:=true;
  286. end;
  287. procedure TfrmSesProperty.bitOKClick(Sender: TObject);
  288. begin
  289. //Devolverá el ModalResult que esté configurado.
  290. //bitAplicarClick(Self);
  291. //if fraError<>nil then exit; //hubo error
  292. //fcConex.GrabarIP;
  293. //self.Close; //porque es modal
  294. end;
  295. procedure TfrmSesProperty.bitCancelClick(Sender: TObject);
  296. begin
  297. //Devolverá el ModalResult que esté configurado.
  298. self.Hide;
  299. end;
  300. procedure TfrmSesProperty.chkSendRecComChange(Sender: TObject);
  301. begin
  302. speTempo.Enabled:=chkSendRecCom.checked;
  303. label15.Enabled:=chkSendRecCom.checked;
  304. GroupBox3.Enabled:=chkSendRecCom.checked;
  305. cmdTestComm.Enabled:=chkSendRecCom.checked;
  306. end;
  307. procedure TfrmSesProperty.chkDetecPromptChange(Sender: TObject);
  308. begin
  309. GroupBox1.Enabled:=chkDetecPrompt.Checked;
  310. end;
  311. procedure TfrmSesProperty.chkMarLinActChange(Sender: TObject);
  312. begin
  313. lblCLinAct.Enabled:=chkMarLinAct.Checked;
  314. cbutLinAct.Enabled:=chkMarLinAct.Checked;
  315. end;
  316. procedure TfrmSesProperty.chkHLCurWordChange(Sender: TObject);
  317. begin
  318. lblCurWordCol.Enabled:=chkHLCurWord.Checked;
  319. cbutResPal.Enabled:=chkHLCurWord.Checked;
  320. end;
  321. procedure TfrmSesProperty.chkVerPanVerChange(Sender: TObject);
  322. begin
  323. chkVerNumLin.Enabled:=chkVerPanVer.Checked;
  324. chkVerMarPle.Enabled:=chkVerPanVer.Checked;
  325. cbutFonPan.Enabled:=chkVerPanVer.Checked;
  326. cbutTxtPan.Enabled:=chkVerPanVer.Checked;
  327. label2.Enabled:=chkVerPanVer.Checked;
  328. label3.Enabled:=chkVerPanVer.Checked;
  329. end;
  330. procedure TfrmSesProperty.cmdTestCommClick(Sender: TObject);
  331. begin
  332. //lama al evento para probar la temporización
  333. OnTest;
  334. end;
  335. procedure TfrmSesProperty.FormCreate(Sender: TObject);
  336. begin
  337. fraCfgSyntax := TfraCfgSyntax.Create(self);
  338. fraCfgSyntax.Parent := TabGenSyntax;
  339. fraCfgSyntax.Left := 0;
  340. fraCfgSyntax.Top := 0;
  341. PageControl1.ShowTabs := false;
  342. cmbTipoLetra.Items.Clear;
  343. cmbTipoLetra.Items.Add('Courier New');
  344. cmbTipoLetra.Items.Add('Fixedsys');
  345. cmbTipoLetra.Items.Add('Lucida Console');
  346. cmbTipoLetra.Items.Add('Consolas');
  347. cmbTipoLetra.Items.Add('Cambria');
  348. cmbTipoLetra1.Items.Clear;
  349. cmbTipoLetra1.Items.Add('Courier New');
  350. cmbTipoLetra1.Items.Add('Fixedsys');
  351. cmbTipoLetra1.Items.Add('Lucida Console');
  352. cmbTipoLetra1.Items.Add('Consolas');
  353. cmbTipoLetra1.Items.Add('Cambria');
  354. end;
  355. procedure TfrmSesProperty.Exec(connected: boolean);
  356. {Muestra el formulario actual.}
  357. begin
  358. //Selecciona primera opción.
  359. TreeView1.Items[0].Selected:=true;
  360. TreeView1Click(self);
  361. if connected then begin
  362. TabGenConnec.Enabled := false;
  363. end else begin
  364. TabGenConnec.Enabled := true;
  365. end;
  366. self.ShowModal;
  367. end;
  368. end.