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 01-11-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
How To > Arbol de Properties en el Object Inspector

Arbol de Properties en el Object Inspector

Estoy creando un componente, el cual tiene muchas propiedades de un misma jerarquía, como por ejemplo la propiedad Font de un componente, la cual agrupa ciertas propiedades pertenecientes al tipo de letra. Pues bien, como hago yo para encerrar todas mis propiedades en una categoria?

[Font]
Color
Size
etc...

Y yo quiero por ejemplo:
[Persona]
Nombre
Apellido
DNI
etc.

Si bien, en el objet inspector me aparecen estas propiedades, quiciera que esté dentro de una categoría, como en el ejemplo anterior.
Como se hace?

Saludos y Muchas Gracias
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 01-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, lo mejor que podrias hacer es crear una clase con las propiedades que tu quieres 'jerarquizar', y crear un objeto de tu clase dentro de tu componente, por ejemplo, y este asignarlo a una propiedad. Deberas crearlo en el create y destruirlo (si no tiene owner) en el destroy

Código Delphi [-]

private
FMiClase : TMiClase
...
public
constructor Create(AOwner : TComponent); override;
destructor  Destroy; override;
published
property MiClase : TMiClase read FMiClase write FMiClase;

...

constructor TComp.Create(AOwner : TComponent);
begin
       inherited Create(AOwner);
       FMiClase := TMiClase.Create;
       ...
end;

destructor TComp.Destroy;
begin
        if Assigned(FMiClase) then FMiClase.Free;
        ...
        inherited Destroy;
end;

Última edición por coso fecha: 01-11-2008 a las 17:34:09. Razón: reescribir
Responder Con Cita
  #3  
Antiguo 02-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Ampliando lo dicho por coso:

Si tienes un tipo enumerado, se convierte en el Inspector de objetos en una Lista desplegable, como la propiedad FormStyle

Si tienes un tipo "set" te aparece el símbolo "+" para desplegarlo, igual que la propiedad Style de un TFont, o las "options" de un grid.

Si es un tipo de datos más complejo, deberías crear un Editor de propiedades (busca por property editors en el foro) de forma que te saldrá un botón con 3 puntitos y al pulsarlo saldrá la ventana que tú diseñes a tal fin.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 03-11-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Agregando...

La clase que va a contener las subpropiedades debe descender de TPersistent para que estas puedan guardar sus valores en el DFM.

Código Delphi [-]
interface

type
  TSubProperty = class(TPersistent)
  private
    FNombre: string;
    FApellidos: string;
  published
    property Nombre: string read FNombre write FNombre;
    property Apellidos: string read FApellidos write FApellidos;
  end;

  TParentComponent = class(TComponent)
  private
    FSubProperty: TSubProperty;
    procedure SetSubProperty(Value: TSubProperty);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property SubProperty read FSubProperty write SetSubProperty;
  end;

implementation

constructor TParentComponent.Create(AOwner: TComponent);
begin
  inherited;
  FSubProperty := TSubProperty.Create
end;

destructor TParentComponent.Destroy;
begin
  FSubProperty.Free;
  inherited
end;

procedure TParentComponent.SetSubProperty(Value: TSubProperty);
begin
  FSubProperty.Assign(Value)  // Tienes que redefinir el método Assign en TSubProperty
  // para poder hacer esto
end;


Saludos...

Última edición por maeyanes fecha: 03-11-2008 a las 15:45:01.
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
Dude de IDE de Delphi 7 Object Inspector saldanaluis Varios 6 27-08-2007 19:09:43
Cargar Propiedades en el Object Inspector droguerman OOP 2 29-06-2007 20:39:47
¿Puedo acceder a mis propios métodos desde el Object Inspector? leanfreue OOP 2 16-04-2007 03:38:09
no puedo abrir el Object Inspector!! alejandroMB Varios 2 07-11-2006 22:20:55
Duda interesante con en Object Inspector? IVAND Varios 3 29-03-2004 21:53:01


La franja horaria es GMT +2. Ahora son las 23:28:02.


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