Buenos días madrugadores,
Bueno eso es para los que visitan el foro desde España y en este momento, para los demás Buenos/as lo que proceda.
Estoy haciendo un componente derivado de un TImage y dentro del método Create de éste nuevo componente intento dibujar un recuadro que utilice toda la extensión del componente (en tiempo de diseño lo dimensiono de 200x200 pixels), para lo que hago:
Código Delphi
[-]
TmyComponent= Class(TImage)
Private
Public
Constructor Create(aOwner: TComponent); Override;
Destructor Destroy; Override;
Published
End;
Constructor TmyComponent.Create(aOwner: TComponent);
Begin
Inherited Create(aOwner);
Canvas.Pen.Color := clBlack;
Canvas.Brush.Color := clWhite;
Canvas.Rectangle(0, 0, Width, Height);
End;
Sin embargo esto me dibuja un rectángulo de 105x105, es como si esas medidas fueran las definidas por Delphi y en realidad todavía no se conocen las reales (200x200).
ENtonces ¿cuando puedo dibujar Canvas.Rectangle(0, 0, Width, Height) y que el rectángulo sea de 200x200, es decir ¿en qué momento Width y Height tienen los valores correctos? y ¿cómo puedo conocer ese momento?
Por el momento he puesto un timer a 50 ms y cuando se dispara Width y Height ya tienen el valor 200, pero me parece una chapuza, ¿verdad?
Como siempre agradeceré que intentéis ayudarme.
Saludos.