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 14-08-2006
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Capturando cambios de altura en un Panel

Saludos a todos, a ver si me pueden ayudar, lo que quiero hacer es que cuando el componente, en este caso un decendiente de TPanel, cambie su tamaño este llame a un procedimiento, por ejemplo: que al cambiar la altura, los componentes adentro del panel tambien la cambien

Gracias de antemano
Chrids
Responder Con Cita
  #2  
Antiguo 14-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Más o menos esto:

Código Delphi [-]
TMiPanel = class (TPanel)
  private
    FHeight :integer;
    procedure SetHeight(value:integer);
  protected
    procedure DoResizeControls;
  published
    property Height: integer read FHeight write SetHeight;
end;

procedure TMiPanel.SetHeight(value:integer);
begin
  if FHeight <> Value then // si la altura es distinta de la que tiene ahora mismo.
  begin
     FHeight:= Value;
     DoResizeControls;
     Invalidate; //hacemos que se repinte el panel.
  end;
end;

Cada vez que el usuario modifique la altura, bien por el inspector de objetos, o bien por código en ejecución, se ejecutará el procedimiento SetHeight, que a su vez llama al encargado de redimiensionar los controles que tiene dentro.


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 14-08-2006
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Muchas gracias eso era lo que ocupaba, solo una pregunta que es este procedimiento?
Código Delphi [-]
procedure DoResizeControls;
Responder Con Cita
  #4  
Antiguo 15-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En principio, sería el procedimiento que se encarga de redimensionar los controles que haya dentro de "TMiPanel".

Normalmente, cuando se hace un componente, se hace de esa forma, es decir, se crea un procedimiento protegido que realiza la acción principal. Si alguien tiene que derivar de TMiPanel para añadir una nueva funcionalidad, solamente debe sobreescribir ese método y listo.

En realidad, debería estar declarado como:
Código Delphi [-]
procedure DoResizeControls;virtual;
Para que pueda ser sobreescrito (override en delphi) por los programadores que deriven de TMiPanel. En realidad es algo más complejo, por eso no añadí información. Dale una visual a las directivas virtual, dynamic, override de la ayuda.

Tratándose de un panel, quizás te sirva el evento OnCanResize, OnResize, etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 15-08-2006
Avatar de chrids506
chrids506 chrids506 is offline
Miembro
 
Registrado: abr 2006
Posts: 70
Poder: 19
chrids506 Va por buen camino
Muchisimas gracias por tu tiempo, la verdad es que me has respondido mi duda

Saludos,
Chrids
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
Aumentar altura de texto Canvas Javi2 Varios 0 12-01-2006 10:42:12
Altura de un Combobox elcigarra OOP 12 02-09-2005 15:05:12
Problemas capturando teclas igest2000 Varios 2 22-04-2005 15:11:55
Capturando pantallas StartKill Gráficos 3 14-05-2004 21:56:10


La franja horaria es GMT +2. Ahora son las 10:36:18.


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