unit DLGFECHAS;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls, Mask, dialogs, messages;

type
  TFDLGFECHAS = class(TForm)
    bACEPTAR: TButton;
    bCancelar: TButton;
    Bevel1: TBevel;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    Label2: TLabel;
    Label3: TLabel;
    procedure bACEPTARClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
  private
    { Private declarations }
    fecha1:tdate;
    fecha2:tdate;
  public
      property fechainicio: tdate read fecha1 write fecha1;
      property fechafinal: tdate read fecha2 write fecha2;
  end;

var
  FDLGFECHAS: TFDLGFECHAS;

implementation

{$R *.DFM}

procedure TFDLGFECHAS.bACEPTARClick(Sender: TObject);
begin
    try
        fechainicio:=strtodate(maskedit1.text);
    except
        on e:exception do
        begin
            messagedlg('LA FECHA INICIAL NO ES CORRECTA. INTRODUZCA dd/mm/aaaa.',mterror,[mbok],0);
            maskedit1.setfocus;
            abort;
        end;
    end;

    try
        fechafinal:=strtodate(maskedit2.text);
    except
        on e:exception do
        begin
            messagedlg('LA FECHA FINAL NO ES CORRECTA. INTRODUZCA dd/mm/aaaa.',mterror,[mbok],0);
            maskedit2.setfocus;
            abort;
        end;
    end;
    modalresult:=mrok;
end;
procedure TFDLGFECHAS.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if ActiveControl=nil then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if (key = #13) and not (activecontrol is tbutton) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if uppercase(key)='O' then if BAceptar.enabled then BAceptar.click;
    if uppercase(key)='C' then if BCancelar.enabled then BCancelar.click;
end;

procedure TFDLGFECHAS.FormShow(Sender: TObject);
begin
    maskedit1.text:='';
    maskedit1.setfocus;
    maskedit2.text:=datetostr(date);
end;

procedure TFDLGFECHAS.MaskEdit1Exit(Sender: TObject);
begin
     MASKEDIT1.Text:=DATETOSTR(STRTODATE(MASKEDIT1.TEXT));
end;

procedure TFDLGFECHAS.MaskEdit2Exit(Sender: TObject);
begin
MASKEDIT2.Text:=DATETOSTR(STRTODATE(MASKEDIT2.TEXT));
end;

end.
