Bueno aqui estamos de nuevo. Les cuesto. Agrege el siguiente procedimiento a la clase en la sección protected
Código Delphi
[-]Procedure CreateWnd; Override;
con el siguiente codigo:
Código Delphi
[-]procedure TPrcMonthCalendar.CreateWnd;
begin
inherited;
AjustWH;
CreateObjects;
end;
...Las etiquetas se crearon de la siguiente forma:
Código Delphi
[-]x:=5;
y:=21;
for i:=1 to 7 do
begin
FLabD[i]:=TLabel.Create(Self);
with FLabD[i] do
begin
Name:='Lab'+IntToStr(i);
FLabD[i].Parent:=Self;
Caption:=CA_D[i];
AutoSize:=True;
Alignment:=taCenter;
Transparent:=True;
Left:=x;
Top:=y;
Width:=21;
Height:=13;
inc(x, Width + 2);
end;
end;
Ahora todo funciona a la perfección
. Para terminar debo señalar lo siguiente. Al momento de alterar las propiedades de las etiquetas y botones internos del componente se producia un error grave en delphi, observando la clase completamente me doy cuenta que tenia un procedimiento dentro de Paint que alteraba las propiedades de las etiquetas y botones la cual es necesario para el cambio de estilo del calendario, entonces...para alterar las propiedades (utilizando For... para recorrer el array) coloque una bifurcación if..then preguntando si el elemento contenido en el array era <> a nil... como lo indico en la fracción de codigo:
Código Delphi
[-]for i:=1 to 42 do
if FBtnD[i]<>nil then
with FBtnD[i] do
begin
GetBtnStateData(TD_MONTHCALENDAR_DM_NORMAL_BSTATE, StateNormal);
GetBtnStateData(TD_MONTHCALENDAR_DM_FOCUS_BSTATE, StateFocus);
GetBtnStateData(TD_MONTHCALENDAR_DM_DISABLED_BSTATE, StateDisabled);
GetBtnStateData(TD_MONTHCALENDAR_DM_DOWN_BSTATE, StateDown);
end;
...con ello ahora el control se puede colocar dentro de la form sin causar problema alguno...al = que al momento de quitarlo.
La destrucción de los controles internos se genero justo antes de ejecutar el inherited Destroy;
Bueno no me queda mas que AGRADECER a cada uno de ustedes por sus lineas. Desde Chile reciban un gran abrazo.
GRACIAS!!!