UFormHorario.pas

  1. unit UFormHorario;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7. ExtCtrls,Horario, Db, DBTables, StdCtrls, Buttons, ImgList, ToolWin,
  8. ComCtrls, ActnList, Menus;
  9.  
  10. type
  11. TFormHorario = class(TForm)
  12. StatusBar1: TStatusBar;
  13. PanelCentral: TPanel;
  14. ToolBar1: TToolBar;
  15. ImageList1: TImageList;
  16. ActionList1: TActionList;
  17. MainMenu1: TMainMenu;
  18. AccionAvanzarSemana: TAction;
  19. AccionRetrocederSemana: TAction;
  20. AccionInsertarCita: TAction;
  21. AccionEliminarCita: TAction;
  22. AccionAvanzarHora: TAction;
  23. AccionRetrocederHora: TAction;
  24. AccionLaborables: TAction;
  25. AccionModificarCita: TAction;
  26. AccionAvanzarDia: TAction;
  27. AccionRetrocederDia: TAction;
  28. AccionImprimir: TAction;
  29. AccionOpciones: TAction;
  30. AccionBuscarFecha: TAction;
  31. BotonRetrocederSemana: TToolButton;
  32. BotonAvanzarSemana: TToolButton;
  33. BotonInsertar: TToolButton;
  34. BotonEliminar: TToolButton;
  35. BotonModificar: TToolButton;
  36. BotonImprimir: TToolButton;
  37. BotonRetrocederDia: TToolButton;
  38. BotonAvanzarDia: TToolButton;
  39. BotonBuscar: TToolButton;
  40. BotonRetrocederHoraInicio: TToolButton;
  41. BotonAvanzarHoraInicio: TToolButton;
  42. BotonLaborables: TToolButton;
  43. BotonOpciones: TToolButton;
  44. Separador1: TToolButton;
  45. Separador3: TToolButton;
  46. Separador2: TToolButton;
  47. Separador4: TToolButton;
  48. Avanzarsemana1: TMenuItem;
  49. Retrocedersemana1: TMenuItem;
  50. Edicion2: TMenuItem;
  51. Insertarcita1: TMenuItem;
  52. Eliminarcita1: TMenuItem;
  53. Modificarcita1: TMenuItem;
  54. Retrocederhora1: TMenuItem;
  55. Avanzarhora1: TMenuItem;
  56. N3: TMenuItem;
  57. Retrocederda1: TMenuItem;
  58. Avanzarda1: TMenuItem;
  59. Imprimir1: TMenuItem;
  60. N4: TMenuItem;
  61. Opciones1: TMenuItem;
  62. Laborables1: TMenuItem;
  63. AccionSalir: TAction;
  64. Movimiento2: TMenuItem;
  65. N5: TMenuItem;
  66. Salir1: TMenuItem;
  67. N1: TMenuItem;
  68. Buscarfecha1: TMenuItem;
  69. AccionPreliminar: TAction;
  70. Archivo2: TMenuItem;
  71. Vistapreliminar1: TMenuItem;
  72. ToolButton1: TToolButton;
  73. ImageList2: TImageList;
  74. Ayuda2: TMenuItem;
  75. Acerca1: TMenuItem;
  76. AccionRefrescar: TAction;
  77. ToolButton2: TToolButton;
  78. Refrescar1: TMenuItem;
  79. Horario1: THorario;
  80. ToolBar2: TToolBar;
  81. ComboUsuarios: TComboBox;
  82. BotonUsuarios: TToolButton;
  83. BotonFiltro: TToolButton;
  84. ToolButton3: TToolButton;
  85. ToolButton4: TToolButton;
  86. ComboColorear: TComboBox;
  87. EditFiltro: TEdit;
  88. Panel1: TPanel;
  89. Panel2: TPanel;
  90. Panel3: TPanel;
  91. AccionCortarCita: TAction;
  92. AccionCopiarCita: TAction;
  93. AccionPegarCita: TAction;
  94. N2: TMenuItem;
  95. Cortarcita1: TMenuItem;
  96. Copiarcita1: TMenuItem;
  97. Pegarcita1: TMenuItem;
  98. ToolButton5: TToolButton;
  99. ToolButton6: TToolButton;
  100. ToolButton7: TToolButton;
  101. ToolButton8: TToolButton;
  102. ToolButton9: TToolButton;
  103. WebDe1: TMenuItem;
  104. N6: TMenuItem;
  105. Ayuda1: TMenuItem;
  106. procedure FormCreate(Sender: TObject);
  107. procedure FormDestroy(Sender: TObject);
  108. procedure AccionAvanzarSemanaExecute(Sender: TObject);
  109. procedure AccionRetrocederSemanaExecute(Sender: TObject);
  110. procedure AccionAvanzarHoraExecute(Sender: TObject);
  111. procedure AccionRetrocederHoraExecute(Sender: TObject);
  112. procedure AccionLaborablesExecute(Sender: TObject);
  113. procedure AccionInsertarCitaExecute(Sender: TObject);
  114. procedure AccionModificarCitaExecute(Sender: TObject);
  115. procedure AccionOpcionesExecute(Sender: TObject);
  116. procedure AccionAvanzarDiaExecute(Sender: TObject);
  117. procedure AccionRetrocederDiaExecute(Sender: TObject);
  118. procedure AccionBuscarFechaExecute(Sender: TObject);
  119. procedure AccionImprimirExecute(Sender: TObject);
  120. procedure AccionEliminarCitaExecute(Sender: TObject);
  121. procedure ToolButton1Click(Sender: TObject);
  122. procedure Horario1AlSeleccionar(Sender: TObject);
  123. procedure Horario1AlCambiar(Sender: TObject);
  124. procedure Horario1AlDobleClic(Sender: TObject);
  125. procedure AccionSalirExecute(Sender: TObject);
  126. procedure AccionPreliminarExecute(Sender: TObject);
  127. procedure Acerca1Click(Sender: TObject);
  128. procedure ComboUsuariosClick(Sender: TObject);
  129. procedure AccionRefrescarExecute(Sender: TObject);
  130. procedure BotonUsuariosClick(Sender: TObject);
  131. procedure BotonFiltroClick(Sender: TObject);
  132. procedure BotonColorearClick(Sender: TObject);
  133. procedure ComboColorearClick(Sender: TObject);
  134. procedure EditFiltroKeyPress(Sender: TObject; var Key: Char);
  135. procedure AccionCortarCitaExecute(Sender: TObject);
  136. procedure AccionCopiarCitaExecute(Sender: TObject);
  137. procedure AccionPegarCitaExecute(Sender: TObject);
  138. procedure Ayuda1Click(Sender: TObject);
  139. procedure WebDe1Click(Sender: TObject);
  140. private
  141. public
  142. property Horario: THorario read Horario1;
  143. end;
  144.  
  145. var
  146. FormHorario: TFormHorario;
  147.  
  148. implementation
  149. {$R *.DFM}
  150.  
  151. uses
  152. UFormEditar, UFormOpciones, UFormInforme,
  153. ArchivoIni, Printers, UFormSeleccProfes, UFormLogo, UDM,
  154. ClipBrd,
  155. ShellAPI;
  156.  
  157. var
  158. contador: integer = 0;
  159.  
  160. //-----------------------------------------------
  161. // Crear formulario
  162.  
  163. procedure TFormHorario.FormCreate(Sender: TObject);
  164. var
  165. usuarios: string;
  166. indiceUsuario: integer;
  167. filtroTema: string;
  168. //filtradoTema: boolean;
  169. //indiceColorear: integer;
  170. archivoBD: string;
  171.  
  172. begin
  173.  
  174. Horario1.NombreCampos.Text :=
  175. 'ID'#13#10 +
  176. 'TIPO'#13#10 +
  177. 'USUARIO'#13#10 +
  178. 'TEMA'#13#10 +
  179. 'TITULO'#13#10 +
  180. 'FECHA'#13#10 +
  181. 'HORA'#13#10 +
  182. 'DURACION'#13#10 +
  183. 'COLOREAR'#13#10
  184. ;
  185.  
  186. {Table1.DatabaseName := ExtractFilePath (Application.ExeName);
  187.   Table1.TableName := 'Horario';
  188.   Table1.Open;}
  189.  
  190. with TArchivoIni.Create (self) do try
  191. CargarPosicionFormulario;
  192.  
  193. archivoBD := ReadString (self.Name, 'ArchivoBD', 'DSN=proinf');
  194.  
  195. usuarios := ReadString (self.Name, 'Usuarios', '');
  196. indiceUsuario := ReadInteger (self.Name, 'IndiceUsuario', -1);
  197. filtroTema := ReadString (self.Name, 'FiltroTema', '');
  198. //indiceColorear := ReadInteger (self.Name, 'IndiceColorear', 0);
  199.  
  200. Printer.Orientation := TPrinterOrientation (ReadInteger ('Impresora', 'Orientación', 0));
  201.  
  202. Horario1.NumDias := ReadInteger (self.Name, 'NumDias', Horario1.NumDias);
  203. Horario1.NumHoras := ReadInteger (self.Name, 'NumHoras', Horario1.NumHoras);
  204. Horario1.HoraInicio := ReadInteger (self.Name, 'HoraInicio', Horario1.HoraInicio);
  205.  
  206. Horario1.Opcion[ohLaborables] := ReadBool (self.Name, 'Laborables', Horario1.Opcion[ohLaborables]);
  207. Horario1.Opcion[ohRelieve] := ReadBool (self.Name, 'Relieve', Horario1.Opcion[ohRelieve]);
  208. Horario1.Opcion[ohAhora] := ReadBool (self.Name, 'Ahora', Horario1.Opcion[ohAhora]);
  209. Horario1.Opcion[ohFestivos] := ReadBool (self.Name, 'Festivos', Horario1.Opcion[ohFestivos]);
  210. Horario1.Opcion[ohPistas] := ReadBool (self.Name, 'Pistas', Horario1.Opcion[ohPistas]);
  211.  
  212. Horario1.SoloLectura := ReadBool (self.Name, 'SoloLectura', Horario1.SoloLectura);
  213. Horario1.CampoColorear := TCamposHorario (ReadInteger (self.Name, 'CampoColorear', 0));
  214. finally
  215. Free;
  216. end;
  217.  
  218. // Conectar con la BD
  219. if dm.AbrirBD (archivoBD) then begin
  220. dm.RellenarListaUsuarios (ComboUsuarios.Items);
  221. ComboUsuarios.Items.Insert(0,'<todos>');
  222. ComboUsuarios.Items.Insert(1,'<varios>');
  223. ComboUsuarios.ItemIndex := indiceUsuario;
  224. dm.SetUsuarios (usuarios);
  225. dm.SetFiltroTema (filtroTema);
  226. EditFiltro.Text := filtroTema;
  227. //ComboColorear.ItemIndex := indiceColorear;
  228. ComboColorear.ItemIndex := Integer (Horario1.CampoColorear);
  229. dm.Reconsultar ();
  230. horario1.Repintar ();
  231. end
  232. else begin
  233. self.Close;
  234. end;
  235.  
  236. // Conectar horario con la BD
  237. Horario1.DataSource := dm.DSCitas;
  238. end;
  239.  
  240.  
  241. procedure TFormHorario.FormDestroy(Sender: TObject);
  242. begin
  243. with TArchivoIni.Create (self) do try
  244. GuardarPosicionFormulario;
  245.  
  246. WriteInteger ('Impresora', 'Orientación', Integer (Printer.Orientation));
  247.  
  248. WriteInteger (self.Name, 'IndiceUsuario', ComboUsuarios.ItemIndex);
  249. WriteString (self.Name, 'Usuarios', DM.GetUsuarios ());
  250. WriteString (self.Name, 'FiltroTema', dm.GetFiltroTema ());
  251. //WriteBool (self.Name, 'FiltradoTema', BotonFiltro.Down);
  252. //WriteInteger(self.Name,'Colorear', Integer(dm.GetColorear()));
  253. WriteInteger (self.Name, 'IndiceColorear', ComboColorear.ItemIndex);
  254.  
  255. WriteInteger (self.Name, 'NumDias', Horario1.NumDias);
  256. WriteInteger (self.Name, 'NumHoras', Horario1.NumHoras);
  257. WriteInteger (self.Name, 'HoraInicio', Horario1.HoraInicio);
  258.  
  259. WriteBool (self.Name, 'Laborables', Horario1.Opcion[ohLaborables]);
  260. WriteBool (self.Name, 'Relieve', Horario1.Opcion[ohRelieve]);
  261. WriteBool (self.Name, 'Ahora', Horario1.Opcion[ohAhora]);
  262. WriteBool (self.Name, 'Festivos', Horario1.Opcion[ohFestivos]);
  263. WriteBool (self.Name, 'Pistas', Horario1.Opcion[ohPistas]);
  264.  
  265. WriteBool (self.Name, 'SoloLectura', Horario1.SoloLectura);
  266. WriteInteger (self.Name, 'CampoColorear', Integer(Horario1.CampoColorear));
  267. finally
  268. Free;
  269. end;
  270.  
  271. dm.CerrarBD ();
  272. end;
  273.  
  274.  
  275.  
  276.  
  277. //-----------------------------------------------
  278. // Eventos de Horario
  279.  
  280.  
  281. procedure TFormHorario.Horario1AlSeleccionar(Sender: TObject);
  282. begin
  283. with Horario1.Seleccion do begin
  284. StatusBar1.Panels[0].Text := FormatDateTime ('h:nn', Hora);
  285. StatusBar1.Panels[1].Text := FormatDateTime ('h:nn', Hora + Duracion/24);
  286. StatusBar1.Panels[2].Text := FormatFloat ('0 horas', Duracion);
  287. StatusBar1.Panels[3].Text := '';
  288. StatusBar1.Panels[4].Text := '';
  289. StatusBar1.Panels[5].Text := '';
  290. StatusBar1.Panels[6].Text := '';
  291. end;
  292. end;
  293.  
  294. procedure TFormHorario.Horario1AlCambiar(Sender: TObject);
  295. var
  296. i: integer;
  297. ok: boolean;
  298. begin
  299. if Horario1.IdSeleccion = -1 then begin
  300. for i:= 0 to StatusBar1.Panels.Count-1 do
  301. StatusBar1.Panels[i].Text := '';
  302. end
  303. else begin
  304. with Horario1.Seleccion do begin
  305. StatusBar1.Panels[0].Text := FormatDateTime ('h:nn', Hora);
  306. StatusBar1.Panels[1].Text := FormatDateTime ('h:nn', Hora + Duracion/24);
  307. StatusBar1.Panels[2].Text := FormatFloat ('0.00 horas', Duracion);
  308. StatusBar1.Panels[3].Text := Usuario;
  309. StatusBar1.Panels[4].Text := Tema;
  310. StatusBar1.Panels[5].Text := Tipo;
  311. StatusBar1.Panels[6].Text := Titulo;
  312. end;
  313. end;
  314.  
  315. ok := Horario1.Seleccion.Tipo = 'cita'; //ok := Horario1.IdSeleccion < -1;
  316. AccionModificarCita.Enabled := ok;
  317. AccionEliminarCita.Enabled := ok;
  318. AccionCortarCita.Enabled := ok;
  319. AccionCopiarCita.Enabled := ok;
  320. AccionPegarCita.Enabled := not ok;
  321. end;
  322.  
  323. procedure TFormHorario.Horario1AlDobleClic(Sender: TObject);
  324. begin
  325. if Horario1.IdSeleccion = -1
  326. then AccionInsertarCitaExecute (sender)
  327. else AccionModificarCitaExecute (sender);
  328. end;
  329.  
  330. //-----------------------------------------------
  331. // Acciones
  332.  
  333. procedure TFormHorario.AccionAvanzarSemanaExecute(Sender: TObject);
  334. begin
  335. Horario1.AvanzarSemana;
  336. end;
  337.  
  338. procedure TFormHorario.AccionRetrocederSemanaExecute(Sender: TObject);
  339. begin
  340. Horario1.RetrocederSemana;
  341. end;
  342.  
  343. procedure TFormHorario.AccionAvanzarHoraExecute(Sender: TObject);
  344. begin
  345. with Horario1 do begin
  346. HoraInicio := HoraInicio + 1;
  347. end;
  348. end;
  349.  
  350. procedure TFormHorario.AccionRetrocederHoraExecute(Sender: TObject);
  351. begin
  352. with Horario1 do begin
  353. HoraInicio := HoraInicio - 1;
  354. end;
  355. end;
  356.  
  357. procedure TFormHorario.AccionAvanzarDiaExecute(Sender: TObject);
  358. begin
  359. with Horario1 do begin
  360. AvanzarDia;
  361. end;
  362. end;
  363.  
  364. procedure TFormHorario.AccionRetrocederDiaExecute(Sender: TObject);
  365. begin
  366. with Horario1 do begin
  367. RetrocederDia;
  368. end;
  369. end;
  370.  
  371.  
  372. procedure TFormHorario.AccionLaborablesExecute(Sender: TObject);
  373. begin
  374. AccionLaborables.Checked := not AccionLaborables.Checked;
  375. if AccionLaborables.Checked
  376. then Horario1.Opciones := Horario1.Opciones + [ohLaborables]
  377. else Horario1.Opciones := Horario1.Opciones - [ohLaborables];
  378. end;
  379.  
  380. procedure TFormHorario.AccionInsertarCitaExecute(Sender: TObject);
  381. var
  382. id: integer;
  383. begin
  384. // Filtros
  385. {---
  386.   if dm.GetNumUsuarios() <> 1 then begin
  387.   MessageDlg ('Para insertar o modificar una cita se ha de seleccionar un único usuario',
  388.   mtInformation, [mbOk], 0);
  389.   exit;
  390.   end;
  391.   ---}
  392.  
  393. with Horario1.Seleccion do begin
  394. FormEditar.ActivarActualizacion (false);
  395. FormEditar.Horario := Horario1;
  396. FormEditar.Id := -1;
  397. FormEditar.Fecha := Fecha;
  398. FormEditar.HoraInicio := Hora;
  399. FormEditar.HoraFin := Hora + Duracion/24;
  400. FormEditar.ActivarActualizacion (true);
  401. end;
  402.  
  403. FormEditar.Posicionar (BotonInsertar);
  404. if mrOk = FormEditar.MostrarInsertar then begin
  405. FormEditar.Tema := trim (FormEditar.Tema);
  406. FormEditar.Titulo := trim (FormEditar.Titulo);
  407. id := dm.InsertarCita (0,
  408. FormEditar.Usuario,
  409. FormEditar.Tema,
  410. FormEditar.Titulo,
  411. FormEditar.Tipo,
  412. FormEditar.Fecha,
  413. FormEditar.HoraInicio,
  414. (FormEditar.HoraFin - FormEditar.HoraInicio) * 24);
  415. if id <> 0 then begin
  416. Horario1.MostrarId (id);
  417. Horario1AlCambiar (nil);
  418. end;
  419. end;
  420. end;
  421.  
  422. procedure TFormHorario.AccionModificarCitaExecute(Sender: TObject);
  423. var
  424. id: integer;
  425. begin
  426. // Filtros
  427. {---
  428.   if dm.GetNumUsuarios() <> 1 then begin
  429.   MessageDlg ('Para insertar o modificar una cita se ha de seleccionar un único usuario',
  430.   mtInformation, [mbOk], 0);
  431.   exit;
  432.   end;
  433.   ---}
  434.  
  435. id := Horario1.IdSeleccion;
  436. if id = -1 then exit;
  437.  
  438. //Horario1.MostrarId (id); // Más correcto pero más lento
  439. if dm.BuscarCita(id) then begin
  440.  
  441. with Horario1.Seleccion do begin
  442. FormEditar.ActivarActualizacion (false);
  443. FormEditar.Horario := Horario1;
  444. FormEditar.Id := Id;
  445. FormEditar.Fecha := Fecha;
  446. FormEditar.HoraInicio := Hora;
  447. FormEditar.HoraFin := Hora + Duracion/24;
  448. FormEditar.Usuario := Usuario;
  449. FormEditar.Tema := Tema;
  450. FormEditar.Titulo := Titulo;
  451. FormEditar.Tipo := Tipo;
  452. FormEditar.ActivarActualizacion (true);
  453. end;
  454.  
  455. FormEditar.Posicionar (BotonModificar);
  456. if mrOk = FormEditar.MostrarModificar then begin
  457. dm.InsertarCita (id,
  458. FormEditar.Usuario,
  459. FormEditar.Tema,
  460. FormEditar.Titulo,
  461. FormEditar.Tipo,
  462. FormEditar.Fecha,
  463. FormEditar.HoraInicio,
  464. (FormEditar.HoraFin - FormEditar.HoraInicio) * 24)
  465. end;
  466. Horario1.MostrarId (id);
  467. Horario1AlCambiar (nil);
  468. end;
  469. end;
  470.  
  471. procedure TFormHorario.AccionRefrescarExecute(Sender: TObject);
  472. begin
  473. Horario1.Repintar;
  474. end;
  475.  
  476. procedure TFormHorario.AccionOpcionesExecute(Sender: TObject);
  477. begin
  478. FormOpciones.Horario := Horario1;
  479. FormOpciones.Posicionar (BotonOpciones);
  480. FormOpciones.ShowModal;
  481. ComboColorear.ItemIndex := Integer (Horario1.CampoColorear);
  482. end;
  483.  
  484.  
  485. procedure TFormHorario.AccionBuscarFechaExecute(Sender: TObject);
  486. var
  487. texto: string;
  488. fecha: TDateTime;
  489. begin
  490. texto := DateToStr (date);
  491. texto := InputBox ('Buscar','Fecha:',texto);
  492. try
  493. fecha := StrToDate (texto);
  494. Horario1.MostrarDia (fecha);
  495. except
  496. on EConvertError do begin end;
  497. end;
  498. end;
  499.  
  500. procedure TFormHorario.AccionImprimirExecute(Sender: TObject);
  501. const
  502. margen = 200;
  503. var
  504. p: TPrinter;
  505. c: TCanvas;
  506.  
  507. begin
  508. p := Printer;
  509. c := p.Canvas;
  510.  
  511. {if p.Printing then begin
  512.   Application.MessageBox ('Ya hay un trabajo imprimiéndose', 'Aviso', MB_ICONINFORMATION);
  513.   Exit;
  514.   end;}
  515.  
  516. with Horario1 do begin
  517. p.Title := 'Horario del ' + DateToStr (FechaInicio) +
  518. ' al ' + DateToStr (FechaInicio + NumDias - 1);
  519. end;
  520.  
  521. p.BeginDoc;
  522. Horario1.Informe (c,
  523. margen, margen,
  524. p.PageWidth-margen*2, p.PageHeight-margen*2);
  525. p.EndDoc;
  526. end;
  527.  
  528. procedure TFormHorario.AccionPreliminarExecute(Sender: TObject);
  529. begin
  530. FormInforme.Horario := Horario1;
  531. FormInforme.ShowModal;
  532. end;
  533.  
  534. procedure TFormHorario.AccionEliminarCitaExecute(Sender: TObject);
  535. var
  536. id: integer;
  537. tipo: string;
  538. begin
  539. id := Horario1.IdSeleccion;
  540. Horario1.MostrarId (id);
  541. if id = -1 then exit;
  542. tipo := Horario1.Seleccion.Tipo;
  543. if dm.BorrarCita (id, tipo) then begin
  544. Horario1.Repintar;
  545. end;
  546. end;
  547.  
  548. procedure TFormHorario.ToolButton1Click(Sender: TObject);
  549. begin
  550. Horario1.Repintar;
  551. end;
  552.  
  553.  
  554. procedure TFormHorario.AccionSalirExecute(Sender: TObject);
  555. begin
  556. self.Close;
  557. end;
  558.  
  559. //-----------------------------------------------
  560. // Comboboxes
  561.  
  562. procedure TFormHorario.ComboUsuariosClick(Sender: TObject);
  563. begin
  564. case ComboUsuarios.ItemIndex of
  565. -1: // No se seleccionó nada
  566. ;
  567. 0: // Todos;
  568. begin
  569. dm.SetUsuarios ('');
  570. dm.Reconsultar ();
  571. Horario1.Repintar;
  572. end;
  573. 1: // Varios
  574. begin
  575. FormSeleccProfes.Posicionar(ComboUsuarios);
  576. if mrOk = FormSeleccProfes.Mostrar(ComboUsuarios.Items, dm.getUsuarios()) then begin
  577. dm.SetUsuarios (FormSeleccProfes.GetUsuarios ());
  578. dm.Reconsultar ();
  579. Horario1.Repintar;
  580. end;
  581. end;
  582. else // Uno
  583. begin
  584. dm.SetUsuarios (ComboUsuarios.Items[ComboUsuarios.itemIndex]);
  585. dm.Reconsultar ();
  586. Horario1.Repintar;
  587. end;
  588. end;
  589. end;
  590.  
  591. //-----------------------------------------------
  592.  
  593. procedure TFormHorario.Ayuda1Click(Sender: TObject);
  594. begin
  595. ShellAPI.ShellExecute(HWND(0), 'open', 'ayuda.html','','',3)
  596. end;
  597.  
  598. procedure TFormHorario.WebDe1Click(Sender: TObject);
  599. begin
  600. ShellAPI.ShellExecute(HWND(0), 'open', 'http://www.proinf.net/','','',3)
  601. end;
  602.  
  603. procedure TFormHorario.Acerca1Click(Sender: TObject);
  604. begin
  605. with TFormLogo.Create(self) do try
  606. Cerrable := true;
  607. Label2.Caption := 'ProInf.net (c) 2002 - 2004';
  608. ShowModal;
  609. finally
  610. Free;
  611. end;
  612. end;
  613.  
  614. //-----------------------------------------------
  615.  
  616.  
  617. procedure TFormHorario.BotonUsuariosClick(Sender: TObject);
  618. begin
  619. //ComboUsuarios.ItemIndex := 1; // Varios
  620. FormSeleccProfes.Posicionar(BotonUsuarios); // ComboUsuarios);
  621. if mrOk = FormSeleccProfes.Mostrar(ComboUsuarios.Items, dm.GetUsuarios ()) then begin
  622. dm.SetUsuarios (FormSeleccProfes.GetUsuarios ());
  623. dm.Reconsultar ();
  624. Horario1.Repintar;
  625. end;
  626. end;
  627.  
  628. procedure TFormHorario.BotonFiltroClick(Sender: TObject);
  629. const
  630. COMODIN = '%';
  631. begin
  632. //if BotonFiltro.Down then begin
  633. EditFiltro.Text := Trim (EditFiltro.Text);
  634. if EditFiltro.Text = '' then begin
  635. // Nada
  636. end
  637. else if Pos(COMODIN, EditFiltro.Text) = 0 then begin
  638. EditFiltro.Text := EditFiltro.Text + COMODIN;
  639. end;
  640. dm.SetFiltroTema (EditFiltro.Text);
  641. dm.Reconsultar ();
  642. Horario1.Repintar ();
  643. //end;
  644. end;
  645.  
  646. procedure TFormHorario.BotonColorearClick(Sender: TObject);
  647. //var
  648. //colorear: udm.TColorear;
  649. begin
  650. {---
  651.   colorear := colorearAutomatico; // TO DO
  652.   dm.SetColorear(colorear);
  653.   dm.Reconsultar ();
  654.   Horario1.Repintar ();
  655.   ---}
  656. end;
  657.  
  658. procedure TFormHorario.ComboColorearClick(Sender: TObject);
  659. begin
  660.  
  661. Horario1.CampoColorear := TCamposHorario (ComboColorear.ItemIndex);
  662.  
  663. {---
  664.   case ComboColorear.ItemIndex of
  665.   0: Horario1.CampoColorear := chUsuario;
  666.   1: Horario1.CampoColorear := chTema;
  667.   2: Horario1.CampoColorear := chTitulo;
  668.   3: Horario1.CampoColorear := chId;
  669.   4: Horario1.CampoColorear := chFecha;
  670.   5: Horario1.CampoColorear := chHora;
  671.   6: Horario1.CampoColorear := chDuracion;
  672.   7: Horario1.CampoColorear := chColorear;
  673.   end;
  674.   ---}
  675.  
  676. end;
  677.  
  678. procedure TFormHorario.EditFiltroKeyPress(Sender: TObject; var Key: Char);
  679. begin
  680. if key = #13 then begin
  681. BotonFiltroClick (nil);
  682. end;
  683. end;
  684.  
  685. procedure TFormHorario.AccionCortarCitaExecute(Sender: TObject);
  686. var
  687. id: integer;
  688. tipo: string;
  689. begin
  690. id := Horario1.IdSeleccion;
  691. if id = -1 then exit;
  692. tipo := Horario1.Seleccion.Tipo;
  693. clipboard.AsText := Horario.CeldaEnTexto (Horario1.Seleccion);
  694. if dm.BorrarCita (id, tipo, false) then begin
  695. Horario1.Repintar;
  696. end;
  697. end;
  698.  
  699. procedure TFormHorario.AccionCopiarCitaExecute(Sender: TObject);
  700. var
  701. id: integer;
  702. begin
  703. id := Horario1.IdSeleccion;
  704. if id = -1 then exit;
  705. clipboard.AsText := Horario.CeldaEnTexto (Horario1.Seleccion);
  706. end;
  707.  
  708. procedure TFormHorario.AccionPegarCitaExecute(Sender: TObject);
  709. var
  710. id: integer;
  711. celda: TCelda;
  712.  
  713. begin
  714. id := Horario1.IdSeleccion;
  715. if id <> -1 then exit;
  716. celda := Horario.TextoEnCelda (clipboard.AsText);
  717. if celda.id = -1 then exit;
  718.  
  719. with Horario1.Seleccion do begin
  720. celda.Id := -1;
  721. celda.Fecha := Fecha;
  722. celda.Hora := Hora;
  723. end;
  724.  
  725. id := dm.InsertarCita (0,
  726. celda.Usuario,
  727. celda.Tema,
  728. celda.Titulo,
  729. celda.Tipo,
  730. celda.Fecha,
  731. celda.Hora,
  732. celda.Duracion
  733. );
  734.  
  735. if id <> 0 then begin
  736. Horario1.MostrarId (id);
  737. Horario1AlCambiar (nil);
  738. //Horario1.Repaint;
  739. end;
  740. end;
  741.  
  742.  
  743.  
  744. end.
  745.  

Proinf.net