Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2006
piccolo2101 piccolo2101 is offline
Miembro
 
Registrado: oct 2005
Posts: 63
Poder: 19
piccolo2101 Va por buen camino
Creando componente visual

Hola,
como digo en el título, estoy creando un componente visual que hereda de TPanel (no hay razón específica por la que lo hice así) y que dentro debe tener 2 TEdit, 1 TLabel y 1 TUpDown. La idea es hacer un componente de selección de hora donde los edit son las horas y minutos. El TupDown manejara los valores de los edit incrementando o decrementando.
Bueno, los problemas o dudas que tengo son:
1.- No puedo crear el componente en vista de diseño.
2.- Si establezco con código los elementos y en el constructor del
compononte los creo y los inserto en el componente con
insertControl no se maneja bien la distribución de estos ya
que si uso el componente y lo reescalo en la vista de diseño de
mi aplicación, los elementos internos del componente
(TEdit,TUpDown) no lo hacen junto a el.
3.- Si en el constructor uso Tedit.create(self) siendo self el propio
componente, simplemente se me cierra el delphi. Gracioso verdad!!
Si le paso el AOwner del mismo constructor, como el Aowner es mi
applicación los elementos del componente aparecen como elementos
sueltos dentro de mi aplicacion en la vista de diseño como si los
hubiera insertado ahi.

Por ahora creo que esos son los problemas que necesito resolver para
poder seguir adelante.

Un saludo y gracias.
Responder Con Cita
  #2  
Antiguo 25-01-2006
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.275
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
Antes de seguir por ahí, yo revisaría la ayuda y documentación sobre Frames.
De todas formas si quiere hacer pruebas, haz lo siguiente:

Para la definición de la clase:
Código Delphi [-]
  TEditHours = class(TPanel)
  private
    FEdit1: TEdit;
    FEdit2: TEdit;
    FLabel1: TLabel;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Edit1:TEdit read FEdit1 write FEdit1;
    property Edit2:TEdit read FEdit2 write FEdit2;
    property Label1:TLabel read FLabel1 write FLabel1;
  end;

El Create:

Código Delphi [-]
constructor TEditHours.Create(AOwner: TComponent);
begin

  inherited;

  Self.Height := 23;
  Self.Width := 200;
  Self.Caption := '';

  FLabel1 := TLabel.Create(Self);
  FLabel1.Parent := Self;
  FLabel1.Top := 5;
  FLabel1.Left := 3;
  FLabel1.Width := 20;
  FLabel1.Caption := 'Hora: ';

  FEdit1 := TEdit.Create(Self);
  FEdit1.Parent := Self;
  FEdit1.Top := 1;
  FEdit1.Left := 30;
  FEdit1.Width := 75;

  FEdit2 := TEdit.Create(Self);
  FEdit2.Parent := Self;
  FEdit2.Top := 1;
  FEdit2.Left := 110;
  FEdit2.Width := 75;
end;

Y el Free:

Código Delphi [-]
destructor TEditHours.Destroy;
begin

  FLabel1.Free;
  FEdit1.Free;
  FEdit2.Free;

  inherited;
end;

Funciona en diseño y en ejecución. Y puedes añadir más componentes de forma similar.
__________________
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
  #3  
Antiguo 25-01-2006
piccolo2101 piccolo2101 is offline
Miembro
 
Registrado: oct 2005
Posts: 63
Poder: 19
piccolo2101 Va por buen camino
Thumbs up

Muchas gracias. La verdad es que revisando mi código me di cuenta que al cambiar los self de los create tambien lo hice en el create inherited del constructor y claro...por eso se cerraba el delphi. Ahora estoy en el punto que tu me has dejado pero no consigo hacer que en tiempo de diseño se ajuste todo al espacio definido al insertar el componente y que si lo escalo para ajustar el tamaño los elementos también lo hagan.

Un saludo y nuevamente gracias.
Responder Con Cita
  #4  
Antiguo 25-01-2006
piccolo2101 piccolo2101 is offline
Miembro
 
Registrado: oct 2005
Posts: 63
Poder: 19
piccolo2101 Va por buen camino
Thumbs up

Hola,

supuse que igual podía usar el onResize del propio componente y así es.
Gracias por la ayuda.
Responder Con Cita
  #5  
Antiguo 25-01-2006
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.275
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
Puede que no haga falta programar nada; Tal vez si juegas con algun panel y la propiedad Anchors puedas conseguirlo.
__________________
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
Problema creando un nuevo componente y un editor de propiedades Koder OOP 8 21-08-2005 10:59:08
Creando un componente unko! OOP 4 30-03-2005 20:10:48
Componente para soporte Multilenguage en Delphi 2005 Holderhek OOP 2 16-03-2005 15:46:00
creando componente Descendents OOP 23 16-01-2004 14:30:43
creando componente con Tdataset Descendents OOP 4 12-01-2004 21:39:04


La franja horaria es GMT +2. Ahora son las 18:06:34.


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