git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
668 lines
17 KiB
ObjectPascal
668 lines
17 KiB
ObjectPascal
unit CalendarioPagos;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, StdCtrls, RdxPaneles, ExtCtrls, cxSpinEdit, cxControls, Contnrs,
|
||
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, RdxBotones,
|
||
cxGraphics;
|
||
|
||
type
|
||
TOnDrawDayEvent = procedure(Sender : TObject; ADate : TDate; var ABackColor : TColor; var AFont : TFont; var Caption : TCaption; var Hint : String) of object;
|
||
TOnClickDayEvent = procedure(Sender : TObject; ADate : TDate) of object;
|
||
TfrCalendarioPagos = class(TFrame)
|
||
pnlCalendario: TPanel;
|
||
pnlDia1: TRdxPanel;
|
||
eDia1: TLabel;
|
||
eTextoDia1: TLabel;
|
||
pnlDia2: TRdxPanel;
|
||
eDia2: TLabel;
|
||
eTextoDia2: TLabel;
|
||
pnlDia3: TRdxPanel;
|
||
eDia3: TLabel;
|
||
eTextoDia3: TLabel;
|
||
pnlDia4: TRdxPanel;
|
||
eDia4: TLabel;
|
||
eTextoDia4: TLabel;
|
||
pnlDia5: TRdxPanel;
|
||
eDia5: TLabel;
|
||
eTextoDia5: TLabel;
|
||
pnlDia6: TRdxPanel;
|
||
eDia6: TLabel;
|
||
eTextoDia6: TLabel;
|
||
pnlDia7: TRdxPanel;
|
||
eDia7: TLabel;
|
||
eTextoDia7: TLabel;
|
||
pnlDia8: TRdxPanel;
|
||
eDia8: TLabel;
|
||
eTextoDia8: TLabel;
|
||
pnlDia9: TRdxPanel;
|
||
eDia9: TLabel;
|
||
eTextoDia9: TLabel;
|
||
pnlDia10: TRdxPanel;
|
||
eDia10: TLabel;
|
||
eTextoDia10: TLabel;
|
||
pnlDia11: TRdxPanel;
|
||
eDia11: TLabel;
|
||
eTextoDia11: TLabel;
|
||
pnlDia12: TRdxPanel;
|
||
eDia12: TLabel;
|
||
eTextoDia12: TLabel;
|
||
pnlDia13: TRdxPanel;
|
||
eDia13: TLabel;
|
||
eTextoDia13: TLabel;
|
||
pnlDia14: TRdxPanel;
|
||
eDia14: TLabel;
|
||
eTextoDia14: TLabel;
|
||
pnlDia15: TRdxPanel;
|
||
eDia15: TLabel;
|
||
eTextoDia15: TLabel;
|
||
pnlDia16: TRdxPanel;
|
||
eDia16: TLabel;
|
||
eTextoDia16: TLabel;
|
||
pnlDia17: TRdxPanel;
|
||
eDia17: TLabel;
|
||
eTextoDia17: TLabel;
|
||
pnlDia18: TRdxPanel;
|
||
eDia18: TLabel;
|
||
eTextoDia18: TLabel;
|
||
pnlDia19: TRdxPanel;
|
||
eDia19: TLabel;
|
||
eTextoDia19: TLabel;
|
||
pnlDia20: TRdxPanel;
|
||
eDia20: TLabel;
|
||
eTextoDia20: TLabel;
|
||
pnlDia21: TRdxPanel;
|
||
eDia21: TLabel;
|
||
eTextoDia21: TLabel;
|
||
pnlDia22: TRdxPanel;
|
||
eDia22: TLabel;
|
||
eTextoDia22: TLabel;
|
||
pnlDia23: TRdxPanel;
|
||
eDia23: TLabel;
|
||
eTextoDia23: TLabel;
|
||
pnlDia24: TRdxPanel;
|
||
eDia24: TLabel;
|
||
eTextoDia24: TLabel;
|
||
pnlDia25: TRdxPanel;
|
||
eDia25: TLabel;
|
||
eTextoDia25: TLabel;
|
||
pnlDia26: TRdxPanel;
|
||
eDia26: TLabel;
|
||
eTextoDia26: TLabel;
|
||
pnlDia27: TRdxPanel;
|
||
eDia27: TLabel;
|
||
eTextoDia27: TLabel;
|
||
pnlDia28: TRdxPanel;
|
||
eDia28: TLabel;
|
||
eTextoDia28: TLabel;
|
||
pnlDia29: TRdxPanel;
|
||
eDia29: TLabel;
|
||
eTextoDia29: TLabel;
|
||
pnlDia30: TRdxPanel;
|
||
eDia30: TLabel;
|
||
eTextoDia30: TLabel;
|
||
pnlDia31: TRdxPanel;
|
||
eDia31: TLabel;
|
||
eTextoDia31: TLabel;
|
||
pnlDia32: TRdxPanel;
|
||
eDia32: TLabel;
|
||
eTextoDia32: TLabel;
|
||
pnlDia33: TRdxPanel;
|
||
eDia33: TLabel;
|
||
eTextoDia33: TLabel;
|
||
pnlDia34: TRdxPanel;
|
||
eDia34: TLabel;
|
||
eTextoDia34: TLabel;
|
||
pnlDia35: TRdxPanel;
|
||
eDia35: TLabel;
|
||
eTextoDia35: TLabel;
|
||
pnlContenido: TPanel;
|
||
pnlDia42: TRdxPanel;
|
||
eDia42: TLabel;
|
||
eTextoDia42: TLabel;
|
||
pnlDia41: TRdxPanel;
|
||
eDia41: TLabel;
|
||
eTextoDia41: TLabel;
|
||
pnlDia40: TRdxPanel;
|
||
eDia40: TLabel;
|
||
eTextoDia40: TLabel;
|
||
pnlDia39: TRdxPanel;
|
||
eDia39: TLabel;
|
||
eTextoDia39: TLabel;
|
||
pnlDia38: TRdxPanel;
|
||
eDia38: TLabel;
|
||
eTextoDia38: TLabel;
|
||
pnlDia37: TRdxPanel;
|
||
eDia37: TLabel;
|
||
eTextoDia37: TLabel;
|
||
pnlDia36: TRdxPanel;
|
||
eDia36: TLabel;
|
||
eTextoDia36: TLabel;
|
||
pnlSuperior: TPanel;
|
||
pnlOpciones: TPanel;
|
||
eMes: TLabel;
|
||
eAno: TLabel;
|
||
bHoy: TRdxBoton;
|
||
cbxMes: TcxComboBox;
|
||
seAno: TcxSpinEdit;
|
||
eLunes: TLabel;
|
||
eMartes: TLabel;
|
||
eMiercoles: TLabel;
|
||
eJueves: TLabel;
|
||
eViernes: TLabel;
|
||
eSabado: TLabel;
|
||
eDomingo: TLabel;
|
||
Panel1: TPanel;
|
||
eTextoFecha: TLabel;
|
||
bAnterior: TRdxBoton;
|
||
bSiguiente: TRdxBoton;
|
||
procedure bHoyClick(Sender: TObject);
|
||
procedure cbxMesPropertiesEditValueChanged(Sender: TObject);
|
||
procedure seAnoPropertiesEditValueChanged(Sender: TObject);
|
||
procedure pnlCalendarioResize(Sender: TObject);
|
||
procedure eTextoDia1Click(Sender: TObject);
|
||
procedure eTextoDia1MouseEnter(Sender: TObject);
|
||
procedure eTextoDia1MouseLeave(Sender: TObject);
|
||
procedure bAnteriorClick(Sender: TObject);
|
||
procedure bSiguienteClick(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
FListaEtiquetasNombres : TComponentList;
|
||
FListaPanelesDias : TComponentList;
|
||
FListaEtiquetasDias : TComponentList;
|
||
FListaEtiquetasTextos : TComponentList;
|
||
FListaFechas : Array[1..42] of TDate;
|
||
FOnDrawDay: TOnDrawDayEvent;
|
||
FOnClickDay: TOnClickDayEvent;
|
||
procedure InicializarListas;
|
||
procedure RellenarCalendario; overload;
|
||
procedure RellenarCalendario(const Fecha : TDateTime); overload;
|
||
procedure SetOnDrawDay(const Value: TOnDrawDayEvent);
|
||
public
|
||
{ Public declarations }
|
||
constructor Create(AOwner : TComponent); override;
|
||
destructor Destroy; override;
|
||
published
|
||
property OnDrawDay : TOnDrawDayEvent read FOnDrawDay write SetOnDrawDay;
|
||
property OnClickDay : TOnClickDayEvent read FOnClickDay write FOnClickDay;
|
||
end;
|
||
|
||
implementation
|
||
|
||
uses DateUtils, StrUtils, BaseDatos;
|
||
|
||
{$R *.dfm}
|
||
|
||
{ TFrame1 }
|
||
|
||
constructor TfrCalendarioPagos.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
FListaEtiquetasNombres := TComponentList.Create;
|
||
FListaPanelesDias := TComponentList.Create;
|
||
FListaEtiquetasDias := TComponentList.Create;
|
||
FListaEtiquetasTextos := TComponentList.Create;
|
||
InicializarListas;
|
||
|
||
cbxMes.ItemIndex := MonthOf(dmBaseDatos.DarFecha) - 1;
|
||
seAno.Value := YearOf(dmBaseDatos.DarFecha);
|
||
RellenarCalendario;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.bHoyClick(Sender: TObject);
|
||
begin
|
||
cbxMes.ItemIndex := MonthOf(dmBaseDatos.DarFecha) - 1;
|
||
seAno.Value := YearOf(dmBaseDatos.DarFecha);
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.RellenarCalendario;
|
||
var
|
||
FFecha : TDateTime;
|
||
begin
|
||
FFecha := StrToDateTime('01/' + IntToStr(cbxMes.ItemIndex + 1) + '/' + IntToStr(seAno.Value));
|
||
RellenarCalendario(FFecha);
|
||
end;
|
||
|
||
destructor TfrCalendarioPagos.Destroy;
|
||
begin
|
||
FListaEtiquetasNombres.Free;
|
||
FListaPanelesDias.Free;
|
||
FListaEtiquetasDias.Free;
|
||
FListaEtiquetasTextos.Free;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.cbxMesPropertiesEditValueChanged(Sender: TObject);
|
||
begin
|
||
RellenarCalendario
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.seAnoPropertiesEditValueChanged(Sender: TObject);
|
||
begin
|
||
RellenarCalendario;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.pnlCalendarioResize(Sender: TObject);
|
||
var
|
||
FAncho : Integer;
|
||
FNumPanel : Word;
|
||
FTop : Word;
|
||
FLeft : Word;
|
||
FLabel : TLabel;
|
||
FPanel : TWinControl;
|
||
begin
|
||
if Self.Height < Self.Width then
|
||
FAncho := (Self.Height) div 7
|
||
else
|
||
FAncho := (Self.Width - 20) div 7;
|
||
FTop := 0;
|
||
FLeft := 0;
|
||
pnlCalendario.Autosize := False;
|
||
pnlCalendario.Visible := False;
|
||
|
||
// Colocar las etiquetas con los nombres de los d<>as de la semana
|
||
for FNumPanel := 0 to FListaEtiquetasNombres.Count - 1 do
|
||
begin
|
||
FLeft := (FNumPanel mod 7) * FAncho;
|
||
FLabel := FListaEtiquetasNombres.Items[FNumPanel] as TLabel;
|
||
FLabel.Width := FAncho;
|
||
FLabel.Height := 18;
|
||
FLabel.Left := FLeft;
|
||
end;
|
||
|
||
// Colocar los paneles de los d<>as del mes
|
||
for FNumPanel := 0 to FListaPanelesDias.Count - 1 do
|
||
begin
|
||
FTop := (FNumPanel div 7) * FAncho + 18;
|
||
FLeft := (FNumPanel mod 7) * FAncho;
|
||
|
||
FPanel := FListaPanelesDias.Items[FNumPanel] as TWinControl;
|
||
FPanel.Width := FAncho;
|
||
FPanel.Height := FAncho;
|
||
FPanel.Top := FTop;
|
||
FPanel.Left := FLeft;
|
||
end;
|
||
pnlCalendario.Visible := True;
|
||
pnlCalendario.Autosize := True;
|
||
pnlOpciones.Left := (FLeft + FAncho) - pnlOpciones.Width;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.SetOnDrawDay(const Value: TOnDrawDayEvent);
|
||
begin
|
||
FOnDrawDay := Value;
|
||
RellenarCalendario;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.InicializarListas;
|
||
begin
|
||
with FListaEtiquetasNombres do
|
||
begin
|
||
Add(eLunes);
|
||
Add(eMartes);
|
||
Add(eMiercoles);
|
||
Add(eJueves);
|
||
Add(eViernes);
|
||
Add(eSabado);
|
||
Add(eDomingo);
|
||
end;
|
||
|
||
with FListaPanelesDias do
|
||
begin
|
||
Add(pnlDia1);
|
||
Add(pnlDia2);
|
||
Add(pnlDia3);
|
||
Add(pnlDia4);
|
||
Add(pnlDia5);
|
||
Add(pnlDia6);
|
||
Add(pnlDia7);
|
||
Add(pnlDia8);
|
||
Add(pnlDia9);
|
||
Add(pnlDia10);
|
||
Add(pnlDia11);
|
||
Add(pnlDia12);
|
||
Add(pnlDia13);
|
||
Add(pnlDia14);
|
||
Add(pnlDia15);
|
||
Add(pnlDia16);
|
||
Add(pnlDia17);
|
||
Add(pnlDia18);
|
||
Add(pnlDia19);
|
||
Add(pnlDia20);
|
||
Add(pnlDia21);
|
||
Add(pnlDia22);
|
||
Add(pnlDia23);
|
||
Add(pnlDia24);
|
||
Add(pnlDia25);
|
||
Add(pnlDia26);
|
||
Add(pnlDia27);
|
||
Add(pnlDia28);
|
||
Add(pnlDia29);
|
||
Add(pnlDia30);
|
||
Add(pnlDia31);
|
||
Add(pnlDia32);
|
||
Add(pnlDia33);
|
||
Add(pnlDia34);
|
||
Add(pnlDia35);
|
||
Add(pnlDia36);
|
||
Add(pnlDia37);
|
||
Add(pnlDia38);
|
||
Add(pnlDia39);
|
||
Add(pnlDia40);
|
||
Add(pnlDia41);
|
||
Add(pnlDia42);
|
||
end;
|
||
|
||
with FListaEtiquetasDias do
|
||
begin
|
||
Add(eDia1);
|
||
Add(eDia2);
|
||
Add(eDia3);
|
||
Add(eDia4);
|
||
Add(eDia5);
|
||
Add(eDia6);
|
||
Add(eDia7);
|
||
Add(eDia8);
|
||
Add(eDia9);
|
||
Add(eDia10);
|
||
Add(eDia11);
|
||
Add(eDia12);
|
||
Add(eDia13);
|
||
Add(eDia14);
|
||
Add(eDia15);
|
||
Add(eDia16);
|
||
Add(eDia17);
|
||
Add(eDia18);
|
||
Add(eDia19);
|
||
Add(eDia20);
|
||
Add(eDia21);
|
||
Add(eDia22);
|
||
Add(eDia23);
|
||
Add(eDia24);
|
||
Add(eDia25);
|
||
Add(eDia26);
|
||
Add(eDia27);
|
||
Add(eDia28);
|
||
Add(eDia29);
|
||
Add(eDia30);
|
||
Add(eDia31);
|
||
Add(eDia32);
|
||
Add(eDia33);
|
||
Add(eDia34);
|
||
Add(eDia35);
|
||
Add(eDia36);
|
||
Add(eDia37);
|
||
Add(eDia38);
|
||
Add(eDia39);
|
||
Add(eDia40);
|
||
Add(eDia41);
|
||
Add(eDia42);
|
||
end;
|
||
|
||
with FListaEtiquetasTextos do
|
||
begin
|
||
Add(eTextoDia1);
|
||
Add(eTextoDia2);
|
||
Add(eTextoDia3);
|
||
Add(eTextoDia4);
|
||
Add(eTextoDia5);
|
||
Add(eTextoDia6);
|
||
Add(eTextoDia7);
|
||
Add(eTextoDia8);
|
||
Add(eTextoDia9);
|
||
Add(eTextoDia10);
|
||
Add(eTextoDia11);
|
||
Add(eTextoDia12);
|
||
Add(eTextoDia13);
|
||
Add(eTextoDia14);
|
||
Add(eTextoDia15);
|
||
Add(eTextoDia16);
|
||
Add(eTextoDia17);
|
||
Add(eTextoDia18);
|
||
Add(eTextoDia19);
|
||
Add(eTextoDia20);
|
||
Add(eTextoDia21);
|
||
Add(eTextoDia22);
|
||
Add(eTextoDia23);
|
||
Add(eTextoDia24);
|
||
Add(eTextoDia25);
|
||
Add(eTextoDia26);
|
||
Add(eTextoDia27);
|
||
Add(eTextoDia28);
|
||
Add(eTextoDia29);
|
||
Add(eTextoDia30);
|
||
Add(eTextoDia31);
|
||
Add(eTextoDia32);
|
||
Add(eTextoDia33);
|
||
Add(eTextoDia34);
|
||
Add(eTextoDia35);
|
||
Add(eTextoDia36);
|
||
Add(eTextoDia37);
|
||
Add(eTextoDia38);
|
||
Add(eTextoDia39);
|
||
Add(eTextoDia40);
|
||
Add(eTextoDia41);
|
||
Add(eTextoDia42);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.eTextoDia1Click(Sender: TObject);
|
||
var
|
||
FNombre : String;
|
||
begin
|
||
if Assigned(FOnClickDay) then
|
||
begin
|
||
FNombre := (Sender as TLabel).Name;
|
||
FNombre := Copy(FNombre, Length('eTextoDia') + 1, 2);
|
||
FOnClickDay(Self, FListaFechas[StrToInt(FNombre)]);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.eTextoDia1MouseEnter(Sender: TObject);
|
||
begin
|
||
with (((Sender as TLabel).Parent) as TRdxPanel) do
|
||
begin
|
||
ColorShadow := clBlack;
|
||
ColorHighLight := clBlack;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.eTextoDia1MouseLeave(Sender: TObject);
|
||
begin
|
||
with (((Sender as TLabel).Parent) as TRdxPanel) do
|
||
begin
|
||
ColorShadow := $008396A0;
|
||
ColorHighLight := $008396A0;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.RellenarCalendario(const Fecha: TDateTime);
|
||
var
|
||
FFecha : TDateTime;
|
||
FDiasMes : Word;
|
||
FContadorDia : Word;
|
||
FDia : Word;
|
||
FPrimerDia : Word;
|
||
FTexto : TCaption;
|
||
FHint : String;
|
||
FBackColor : TColor;
|
||
AFont : TFont;
|
||
FPos : String;
|
||
begin
|
||
FFecha := Fecha;
|
||
cbxMes.ItemIndex := MonthOf(FFecha) - 1;
|
||
seAno.Value := YearOf(FFecha);
|
||
eTextoFecha.Caption := cbxMes.Text + ' de ' + IntToStr(seAno.Value);
|
||
|
||
FDiasMes := DaysInAMonth(YearOf(FFecha), MonthOf(FFecha));
|
||
FPrimerDia := DayOfTheWeek(FFecha);
|
||
FDia := FPrimerDia - 1;
|
||
FContadorDia := 0;
|
||
|
||
AFont := TFont.Create;
|
||
try
|
||
// Rellenar la parte final del mes anterior
|
||
if (FPrimerDia - 2) >= 0 then
|
||
begin
|
||
FFecha := IncDay(FFecha, (FDia * (-1)));
|
||
FDiasMes := DaysInAMonth(YearOf(FFecha), MonthOf(FFecha));
|
||
FDia := DayOf(FFecha);
|
||
|
||
for FContadorDia := 0 to (FPrimerDia - 2) do
|
||
begin
|
||
with (FListaEtiquetasDias.Items[FContadorDia] as TLabel) do
|
||
begin
|
||
Caption := IntToStr(FDia);
|
||
Font.Color := clAppWorkSpace;
|
||
Color := clBtnFace;
|
||
FPos := Name;
|
||
FPos := Copy(FPos, Length('eDia') + 1, 2);
|
||
FListaFechas[StrToInt(FPos)] := FFecha;
|
||
end;
|
||
|
||
with (FListaEtiquetasTextos.Items[FContadorDia] as TLabel) do
|
||
begin
|
||
FTexto := '';
|
||
FHint := '';
|
||
FBackColor := $00EFF7F7;
|
||
with AFont do
|
||
begin
|
||
Name := 'Tahoma';
|
||
Color := $00737373;
|
||
Style := [];
|
||
end;
|
||
|
||
if DayOfTheWeek(FListaFechas[StrToInt(FPos)]) = DaySunday then
|
||
begin
|
||
AFont.Color := $00564EBA;
|
||
FBackColor := $00D9E5E9;
|
||
end;
|
||
|
||
if Assigned(FOnDrawDay) then
|
||
FOnDrawDay(Self, FListaFechas[StrToInt(FPos)], FBackColor, AFont, FTexto, FHint);
|
||
(FListaEtiquetasTextos.Items[FContadorDia] as TLabel).Color := FBackColor;
|
||
Font.Assign(AFont);
|
||
Caption := FTexto;
|
||
Hint := FHint;
|
||
end;
|
||
FFecha := IncDay(FFecha);
|
||
FDia := DayOf(FFecha);
|
||
end;
|
||
end;
|
||
|
||
|
||
FDiasMes := DaysInAMonth(YearOf(FFecha), MonthOf(FFecha));
|
||
FDia := FContadorDia;
|
||
// Rellenar los paneles del mes
|
||
for FContadorDia := 1 to FDiasMes do
|
||
begin
|
||
with (FListaEtiquetasDias.Items[FDia] as TLabel) do
|
||
begin
|
||
Caption := IntToStr(FContadorDia);
|
||
Font.Color := clWindowText;
|
||
Color := $00C2F0FF;//$00D9E5E9;
|
||
end;
|
||
with (FListaEtiquetasTextos.Items[FDia] as TLabel) do
|
||
begin
|
||
FTexto := '';
|
||
FHint := '';
|
||
FBackColor := clWhite;
|
||
with AFont do
|
||
begin
|
||
Name := 'Tahoma';
|
||
Color := clWindowText;
|
||
Style := [];
|
||
end;
|
||
FPos := Name;
|
||
FPos := Copy(FPos, Length('eTextoDia') + 1, 2);
|
||
FListaFechas[StrToInt(FPos)] := IncDay(FFecha, FContadorDia - 1);
|
||
|
||
if DayOfTheWeek(FListaFechas[StrToInt(FPos)]) = DaySunday then
|
||
begin
|
||
with (FListaEtiquetasDias.Items[FDia] as TLabel) do
|
||
begin
|
||
Color := $00BCBBEE;
|
||
Font.Color := $001F1A62;
|
||
end;
|
||
end;
|
||
|
||
if Assigned(FOnDrawDay) then
|
||
FOnDrawDay(Self, FListaFechas[StrToInt(FPos)], FBackColor, AFont, FTexto, FHint);
|
||
(FListaEtiquetasTextos.Items[FDia] as TLabel).Color := FBackColor;
|
||
Font.Assign(AFont);
|
||
Caption := FTexto;
|
||
Hint := FHint;
|
||
end;
|
||
FDia := FDia + 1;
|
||
end;
|
||
|
||
// Rellenar los paneles que quedan al final
|
||
FFecha := IncMonth(FFecha, 1);
|
||
FFecha := StartOfAMonth(YearOf(FFecha), MonthOf(FFecha));
|
||
for FContadorDia := 1 to ((FListaEtiquetasDias.Count) - FDia) do
|
||
begin
|
||
with (FListaEtiquetasDias.Items[FDia] as TLabel) do
|
||
begin
|
||
Caption := IntToStr(FContadorDia);
|
||
Font.Color := clAppWorkSpace;
|
||
Color := clBtnFace;
|
||
FPos := Name;
|
||
FPos := Copy(FPos, Length('eDia') + 1, 2);
|
||
FListaFechas[StrToInt(FPos)] := FFecha;
|
||
FFecha := IncDay(FFecha);
|
||
end;
|
||
|
||
with (FListaEtiquetasTextos.Items[FDia] as TLabel) do
|
||
begin
|
||
FTexto := '';
|
||
FHint := '';
|
||
FBackColor := $00E2E9E9;
|
||
with AFont do
|
||
begin
|
||
Name := 'Tahoma';
|
||
Color := $00737373;
|
||
Style := [];
|
||
end;
|
||
|
||
|
||
if DayOfTheWeek(FListaFechas[StrToInt(FPos)]) = DaySunday then
|
||
begin
|
||
AFont.Color := $00564EBA;
|
||
FBackColor := $00D9E5E9;
|
||
end;
|
||
|
||
if Assigned(FOnDrawDay) then
|
||
FOnDrawDay(Self, FListaFechas[StrToInt(FPos)], FBackColor, AFont, FTexto, FHint);
|
||
(FListaEtiquetasTextos.Items[FDia] as TLabel).Color := FBackColor;
|
||
Font.Assign(AFont);
|
||
Caption := FTexto;
|
||
Hint := FHint;
|
||
end;
|
||
FDia := FDia + 1;
|
||
end;
|
||
finally
|
||
AFont.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.bSiguienteClick(Sender: TObject);
|
||
var
|
||
FechaAux : TDate;
|
||
begin
|
||
FechaAux := StrToDate('01/' + IntToStr(cbxMes.ItemIndex + 1) + '/' + IntToStr(seAno.Value));
|
||
FechaAux := IncMonth(FechaAux);
|
||
RellenarCalendario(FechaAux);
|
||
end;
|
||
|
||
procedure TfrCalendarioPagos.bAnteriorClick(Sender: TObject);
|
||
var
|
||
FechaAux : TDate;
|
||
begin
|
||
FechaAux := StrToDate('01/' + IntToStr(cbxMes.ItemIndex + 1) + '/' + IntToStr(seAno.Value));
|
||
FechaAux := IncMonth(FechaAux, -1);
|
||
RellenarCalendario(FechaAux);
|
||
end;
|
||
|
||
end.
|