home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d45 / OPTIONS.ZIP / Units / DateTimeEditor.pas < prev    next >
Pascal/Delphi Source File  |  2002-06-17  |  2KB  |  80 lines

  1. unit DateTimeEditor;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ExtCtrls, ComCtrls, StdCtrls, Options;
  8.  
  9. type
  10.   TdtKind = (dtkDate, dtkTime, dtkDateTime);
  11.  
  12.   TfrmDateTimeEditor = class(TForm)
  13.     pnlDate: TPanel;
  14.     pnlTime: TPanel;
  15.     pnlButtons: TPanel;
  16.     Label1: TLabel;
  17.     dtpDate: TDateTimePicker;
  18.     dtpTime: TDateTimePicker;
  19.     Label2: TLabel;
  20.     Button1: TButton;
  21.     Button2: TButton;
  22.     procedure dtpDateChange(Sender: TObject);
  23.     procedure dtpTimeChange(Sender: TObject);
  24.   private
  25.     FKind: TdtKind;
  26.     FDate: TDateTime;
  27.     FTime: TDateTime;
  28.     procedure SetKind(K: TdtKind);
  29.     procedure SetDate(D: TDateTime);
  30.     procedure SetTime(T: TDateTime);
  31.   public
  32.     property Kind: TdtKind read FKind write SetKind;
  33.     property Date: TDateTime read FDate write SetDate;
  34.     property Time: TDateTime read FTime write SetTime;
  35.   end;
  36.  
  37. implementation
  38.  
  39. {$R *.DFM}
  40.  
  41. { TfrmDateTimeEditor }
  42.  
  43. procedure TfrmDateTimeEditor.SetKind(K: TdtKind);
  44. begin
  45.   FKind := K;
  46.   case K of
  47.     dtkDate:
  48.       pnlTime.Visible := false;
  49.     dtkTime: begin
  50.       pnlDate.Visible := false;
  51.       pnlTime.Left := 0;
  52.     end;
  53.   end;
  54. end;
  55.  
  56. procedure TfrmDateTimeEditor.SetDate(D: TDateTime);
  57. begin
  58.   FDate := int(D);
  59.   dtpDate.Date := FDate;
  60. end;
  61.  
  62. procedure TfrmDateTimeEditor.SetTime(T: TDateTime);
  63. begin
  64.   FTime := frac(T);
  65.   dtpTime.Time := FTime;
  66. end;
  67.  
  68. procedure TfrmDateTimeEditor.dtpDateChange(Sender: TObject);
  69. begin
  70.   FDate := int(dtpDate.Date);
  71. end;
  72.  
  73. procedure TfrmDateTimeEditor.dtpTimeChange(Sender: TObject);
  74. begin
  75.   FTime := frac(dtpTime.Time);
  76. end;
  77.  
  78. end.
  79.  
  80.