Sobre ordem de criação...

Delphi

30/06/2005

Pessoal como definir a ordem do carregamento dos componentes do formulário... precizo que uma propriedade minha seja carregada antes da outra?


Bruno Belchior

Bruno Belchior

Curtidas 0

Respostas

Beppe

Beppe

30/06/2005

Botão direito no formulário, ´Creation order...´.


GOSTEI 0
Michael

Michael

30/06/2005

Via código, as propriedades são carregadas na ordem em que são declaradas. Se vc tem uma propriedade [i:490e60f024]Prop1[/i:490e60f024], por exemplo, e quer que ela seja carregada antes de outra, digamos, [i:490e60f024]Prop2[/i:490e60f024], faça assim:

TComponente = class(T....)
(...)
public/published
  property Prop1;
  property Prop2;
end;


Isso é específico para alguns casos. Em geral os programadores declaram as propriedades de seus componentes na ordem q quiserem.

[]´s


GOSTEI 0
Bruno Belchior

Bruno Belchior

30/06/2005

[b:af8f697e1b]Beep[/b:af8f697e1b], salvo um equívoco meu, apenas componentes não visuais entram nessa ordem e [b:af8f697e1b]Michael[/b:af8f697e1b], vc teria algum tutorial que fala sobre isso? pois em meus testes todas as propriedades foram carregadas de acordo com a ordem que aparecem no [b:af8f697e1b].dfm[/b:af8f697e1b]...


GOSTEI 0
Michael

Michael

30/06/2005

A ordem q aparecem no arquivo DFM é aquela em que vc define na declaração de suas propriedades. O Delphi não salva em ordem alfabética, ou algo assim. Até onde eu sei, claro.

[]´s


GOSTEI 0
Bruno Belchior

Bruno Belchior

30/06/2005

também pensava isso... mas derivando de outra classe a minha propriedade era salva após as propriedades da classe ancestral... (uma delas)... :?:


GOSTEI 0
Michael

Michael

30/06/2005

Vc deve redeclarar a propriedade herdada abaixo da sua. Por exemplo: suponha que eu tenha um componente que tenha a propriedade PropA. Eu crio um novo componente herdado desta classe, e quero incluir a propriedade PropB, q seja carregada antes de PropA. Se vc fizer apenas isso:

MeuComp = class(...)
(...)
published
  property PropB;
end;


Sua propriedade ficará abaixo das existentes na classe original. Vc deve então redeclarar a propriedade herdada:

MeuComp = class(...)
(...)
published
  property PropB;
  property PropA;
end;

[]´s


GOSTEI 0
Beppe

Beppe

30/06/2005

[b:2fb0e0755b]Beppe[/b:2fb0e0755b], salvo um equívoco meu, apenas componentes não visuais entram nessa ordem

Verdade, lembrei disso só depois.

Eu naum entendi se é a ordem dos componentes ou ordem das propriedades dentro dele que importa.


GOSTEI 0
Bruno Belchior

Bruno Belchior

30/06/2005

nesse caso basta eu redeclarar a [b:0f3f745356]mesma[/b:0f3f745356] propriedade... ou seja sem atribuir a ela um [b:0f3f745356]Get[/b:0f3f745356] e um [b:0f3f745356]Set[/b:0f3f745356] :?:


GOSTEI 0
Michael

Michael

30/06/2005

nesse caso basta eu redeclarar a [b:f79d281d4f]mesma[/b:f79d281d4f] propriedade... ou seja sem atribuir a ela um [b:f79d281d4f]Get[/b:f79d281d4f] e um [b:f79d281d4f]Set[/b:f79d281d4f] :?:


Sim. Vc pode fazer isso tbm para mudar o operador de visibilidade de uma propriedade, método ou evento tbm.

[]´s


GOSTEI 0
Michael

Michael

30/06/2005

E aí Bruno? Conseguiu mudar a ordem de criação das propriedades?


GOSTEI 0
Bruno Belchior

Bruno Belchior

30/06/2005

ainda não testei... só segunda (04/07/04) que testarei no work...


GOSTEI 0
POSTAR