PDA

Ver la Versión Completa : Propiedad con subpropiedades anidadas


Julián
30-06-2006, 01:04:55
Este componente, que no sirve para nada, muestra como hacer propiedades con otras propiedades añadidas.

Para probarlo solo tienes que bajartelo e instalarlo con component-install

El componente incluye el fichero DCR para que incluyas el icono de chiquito en la paleta de componentes, para descargar el zip, haz clic sobre la imagen de Chiquito.


<a href="http://mandacojones.com/delphi/componentes/TorpedoDeLaPradera.zip"><img src="http://mandacojones.com/delphi/componentes/TorpedoDeLaPradera.jpg" border=0></a>


unit TorpedoDeLaPradera;

interface

uses Windows, Messages, SysUtils, Classes;

type

TTipoJander = ( NoPuedor, Comorl, Fistro);
TPropiedadJander = class(TPersistent)
private
FGrijander: String;
FCobarde: Boolean;
FTipoJander: TTipoJander;
FOwner: TPersistent;
protected
function GetOwner: TPersistent; override;
public
constructor Create(AOwner: TPersistent);
published
property Grijander: String read FGrijander write FGrijander;
property Cobarde: Boolean read FCobarde write FCobarde;
property TipoJander: TTipoJander read FTipoJander write FTipoJander default NoPuedor;
end;

TTorpedoDeLaPradera = class(TComponent)
private
FJander: TPropiedadJander;
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Jander: TPropiedadJander read FJander write FJander;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('ClubDelphi', [TTorpedoDeLaPradera]);
end;

//////////// Propiedad Jander //////////////////////////////////////////////////
//
constructor TPropiedadJander.Create(AOwner: TPersistent);
begin
inherited Create;
FGrijander := 'Jaaarl';
FTipoJander := NoPuedor;
FOwner := AOwner;
end;
//
function TPropiedadJander.GetOwner: TPersistent;
begin
Result := FOwner;
end;
//
////////////////////////////////////////////////////////////////////////////////

////////////// TTorpedoDeLaPradera /////////////////////////////////////////////
//
constructor TTorpedoDeLaPradera.Create(AOwner: TComponent);
begin
inherited;
FJander:= TPropiedadJander.Create(Self);
end;
//
destructor TTorpedoDeLaPradera.Destroy;
begin
if Assigned(FJander) then FJander.Free;
inherited;
end;
//
////////////////////////////////////////////////////////////////////////////////

end.