Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2010
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
¿Cuando puedo acceder a las variables de un objeto?

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 [-]
 
    // CLASS TmyComponent ======================================================================================
    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.
Responder Con Cita
  #2  
Antiguo 21-09-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
no veo en ningun momento que establezcas el width y el height a 200. Supongo que lo haces en tiempo de diseño. Si es así, deberias sobreescribir el procedure AfterConstruction, que es justo despues de haberse creado el objeto y cargado el valor de las propiedades desde el stream. Es alla entonces cuando deberias dibujar el rectangulo. Un saludo.
Responder Con Cita
  #3  
Antiguo 21-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo optaría por hacerlo en el Resize, para que funcione en cualquier momento, tanto en diseño como en ejecución y que se reajuste cuando lo redimensiones.

Código Delphi [-]
...
  protected
    procedure ReSize; override;
...


procedureTmyComponent.ReSize;
begin
  inherited;

  if Assigned(Self.Picture) then begin
    if Assigned(Self.Picture.Graphic) then begin
      Self.Picture.Graphic.Height := Height;
      Self.Picture.Graphic.Width := Width;
    end;
  end;

  Canvas.Pen.Color := clBlack;
  Canvas.Brush.Color := clWhite;
  Canvas.Rectangle(0, 0, Width , Height);

end;

A parte, que es un problema que tienes ahora también, creo que debes "reajustar" el tamaño donde pintas, para ajstarlo al componentes (por eso te está pintando siempre del mismo tamaño).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
sobe declaración de variables de objeto r1d2m3 OOP 2 20-03-2010 03:15:22
Como Acceder a un Objeto de un TreeView!! Velia OOP 2 03-08-2007 17:51:37
acceder a objeto mediante una variable joanajj Varios 37 12-07-2007 18:02:06
Como obtener las variables de un objeto TEO127 OOP 17 08-06-2007 12:43:05
acceder a una variables cahosoft Varios 5 13-06-2006 15:44:05


La franja horaria es GMT +2. Ahora son las 00:23:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi