unit fcalendario;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Data.DB,
  ZAbstractRODataset, ZAbstractDataset, ZDataset, Vcl.StdCtrls, Vcl.DBCtrls;

type
  Tcalendario = class(TForm)
    Panel1: TPanel;
    meses: TMonthCalendar;
    qcalendario: TZQuery;
    chkfestivo: TDBCheckBox;
    dscalendario: TDataSource;
    qcalendariofecha: TDateField;
    qcalendariofestivo: TIntegerField;
    procedure FormShow(Sender: TObject);
    procedure mesesClick(Sender: TObject);
    procedure chkfestivoMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  calendario: Tcalendario;

implementation
uses fdatos;
{$R *.dfm}

procedure Tcalendario.chkfestivoMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    if qcalendario.state in [dsedit] then qcalendario.Post;
end;

procedure Tcalendario.FormShow(Sender: TObject);
var dia,mes,anyo:word;
    fecha:string;
begin
    decodedate(Date(),anyo,mes,dia);
    fecha:=inttostr(dia)+'/'+inttostr(mes)+'/'+inttostr(anyo);
    qcalendario.Filter:='fecha='+''''+fecha+'''';
    qcalendario.Filtered:=true;
    qcalendario.Open;
//    qcalendario.Locate('fecha',fecha,[locaseinsensitive,lopartialkey]);
end;

procedure Tcalendario.mesesClick(Sender: TObject);
var dia,mes,anyo:word;
    fecha:string;
begin
    qcalendario.Close;
    decodedate(meses.date,anyo,mes,dia);
    fecha:=inttostr(dia)+'/'+inttostr(mes)+'/'+inttostr(anyo);
    qcalendario.Filter:='fecha='+''''+fecha+'''';
    qcalendario.Filtered:=true;
    qcalendario.Open;
end;

end.
