Fórum Definir/Mudar ordem de definição das propriedades, como #230213
05/05/2004
0
Tenho uma classe com as propriedades Prim e Seg
type MyClass = class(TObject) private FSeg: Integer; FPrim: Integer; procedure SetSeg(Value: integer); procedure SetPrim(Value: integer); public constructor Create; published property Seg: Integer read FSeg write SetSeg; property Prim: Integer read FPrim write SetPrim; end; (...) constructor Create; begin inherited Create; end;
(Isso é simplificado, claro)
Quando vou debugar, a partir do meu constructor Create, verifico que:
1- ele passa pelo construtor padrão,
2 - passa primeiro em SetPrim e
3-depois em SetSeg
Problema: preciso do valor de FSeg em para definir FPrim (ou seja, [b:c20841b6e7]FSeg[/b:c20841b6e7] é relevante para [b:c20841b6e7]SetPrim[/b:c20841b6e7])
Mas FSeg não tem o valor definido pelo usuário ainda... ele só vai ter quando sair de SetSeg
Como eu mudo essa ordem, fazendo passar em SetSeg antes de SetPrim??
Tem como alterar a ordem de criação dos métodos, etc. ?
Observem que a resposta não é ´a ordem que eles aparecem no código´, pois tudo de Seg vem antes de Prim. :(
Até+
Obrigado
Paulo_amorim
Curtir tópico
+ 0Posts
05/05/2004
Fórum Vini
você tem que ter em mente que o SetSeg e SetPrim só são chamados quando as propriedades são setadas, assim, você mesmo deve estar setando Prim antes de Seg...
Se isso não estiver acontecendo, poste o código do Create.. :wink:
T+,
Vinicius;
Gostei + 0
06/05/2004
Beppe
Gostei + 0
06/05/2004
Paulo_amorim
Como são propriedades, elas não são inicializadas no meu construtor Create...bem como não existe o evento OnCreate (declarado, pelo menos)
meu evento Create somente inicializa umas coisas irrelevantes...mas, aí vai, de qualquer maneira
constructor TCalc.Create(AOwner: TComponent); begin inherited Create(AOwner); ReadOnly := True; Text := ´0´; end;
Eu descobri que quem gerencia as propriedades [i:175dab2806]published[/i:175dab2806] é o próprio ObjectInspector (ou os editores de propriedades, algo assim). Quem sabe isso dê um caminho para alguém...
Se souberem de algo, ficarei grato
Obrigado
Até+
Gostei + 0
10/05/2004
Paulo_amorim
:(
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)