rpahahz Postado Dezembro 25, 2012 Denunciar Share Postado Dezembro 25, 2012 Olá!Não consigo fazer aparecer sub-propertys no Object Inspector.Estas é o código: TNestedProp = class (TPersistent) private FIntegerProp : Integer; FStringProp : String; public constructor Create (AOwner : TComponent); destructor Destroy; override; procedure Assign (Source : TPersistent); override; published property IntegerProp : Integer read FIntegerProp write FIntegerProp; property StringProp : String read FStringProp write FStringProp; end; TMainProp = class(TComponent) private FNestedProp : TNestedProp; protected procedure SetNestedProp (const Value : TNestedProp); public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property NestedProp : TNestedProp read FNestedProp write SetNestedProp; end;procedure Register;implementationprocedure TNestedProp.Assign (Source: TPersistent);begin if Source is TNestedProp then with TNestedProp (Source) do begin Self.IntegerProp := IntegerProp; Self.StringProp := StringProp; end else inherited; //raises an exceptionend;procedure Register;begin RegisterComponents ('ComponentsStudy', [TMainProp]);end;constructor TNestedProp.Create(AOwner: TComponent);begin inherited;end;destructor TNestedProp.Destroy;begin inherited;end;{ TMainProp }constructor TMainProp.Create (AOwner: TComponent);begin inherited;end;destructor TMainProp.Destroy;begin inherited;end;procedure TMainProp.SetNestedProp (const Value: TNestedProp);beginend;Aparece o [+] o botão à esquerda da propriedade, mas ao clicar vira [-] o botão e não mostra as sub-propertysAgradeço qualquer ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 27, 2012 Denunciar Share Postado Dezembro 27, 2012 exemplohttp://delphi.about.com/library/bluc/text/uc083101e.htmabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 7, 2013 Denunciar Share Postado Janeiro 7, 2013 Olá Jonas, obrigado pela resposta!Esse exemplo já tentei tal qual está no site.Acontece que quando clica no [+], não aparecem as sub-propriedades.Trabalho com a versão 2010 Pro. Será que é alguma limitação da versão?Grato.não tenho certeza se isso é limitação de versão, pelo menos na versão Enterprise não acontece isso refaça o seu código do zero baseando-se no exemplo do link que te passei...ou veja algum tutorial sobre a criação de componentes no delphihttps://docs.google.com/document/pub?id=1pe...ve8FvJk_b4iOLI0abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rpahahz
Olá!
Não consigo fazer aparecer sub-propertys no Object Inspector.
Estas é o código:
TNestedProp = class (TPersistent)
private
FIntegerProp : Integer;
FStringProp : String;
public
constructor Create (AOwner : TComponent);
destructor Destroy; override;
procedure Assign (Source : TPersistent); override;
published
property IntegerProp : Integer read FIntegerProp write FIntegerProp;
property StringProp : String read FStringProp write FStringProp;
end;
TMainProp = class(TComponent)
private
FNestedProp : TNestedProp;
protected
procedure SetNestedProp (const Value : TNestedProp);
public
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property NestedProp : TNestedProp read FNestedProp write SetNestedProp;
end;
procedure Register;
implementation
procedure TNestedProp.Assign (Source: TPersistent);
begin
if Source is TNestedProp then
with TNestedProp (Source) do begin
Self.IntegerProp := IntegerProp;
Self.StringProp := StringProp;
end else
inherited; //raises an exception
end;
procedure Register;
begin
RegisterComponents ('ComponentsStudy', [TMainProp]);
end;
constructor TNestedProp.Create(AOwner: TComponent);
begin
inherited;
end;
destructor TNestedProp.Destroy;
begin
inherited;
end;
{ TMainProp }
constructor TMainProp.Create (AOwner: TComponent);
begin
inherited;
end;
destructor TMainProp.Destroy;
begin
inherited;
end;
procedure TMainProp.SetNestedProp (const Value: TNestedProp);
begin
end;
Aparece o [+] o botão à esquerda da propriedade, mas ao clicar vira [-] o botão e não mostra as sub-propertys
Agradeço qualquer ajuda.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.