Componentes Property Objecto Inspector

Delphi

22/05/2009

Estou precisando que :

1) uma Propriedade fique invisivel no Objecto Inspector do Componente


2)E para a propriedade que ficar Visivel impedir que a mesma
não seja modificada via Objecto Inspector

Obrigado


Marco Salles

Marco Salles

Curtidas 0

Respostas

Acacio

Acacio

22/05/2009

1. Para não aparecer no Objecto Inspector tire ela do published e coloque em outra parte. Dependendo do que queres.

2. Para deixar ela somente leitura basta tirar o write na criação

deixa assim

property teste :string read fteste;


GOSTEI 0
Marco Salles

Marco Salles

22/05/2009

. Para não aparecer no Objecto Inspector tire ela do published e coloque em outra parte. Dependendo do que queres. 2. Para deixar ela somente leitura basta tirar o write na criação deixa assim property teste :string read fteste;


Obrigado acacio.. mas ambas as idéias terão como conseqências que
a propriedade não sera mais persistida.. e eu preciso que ela seja
persistida tb.

Imagine ficar setando um valor de uma propriedade toda vez que
vc esta no projeto..


GOSTEI 0
Acacio

Acacio

22/05/2009

Tenta assim,

published
property teste:string read fstring write setstring;
end;



procedure setstring(valor:string);
begin
if valor <> fstring then
fstring := valor; //Aqui pode tratar o campo se não for o valor que tu quer é só jogar como quiser.
end;


GOSTEI 0
Marco Salles

Marco Salles

22/05/2009

obrigado Acacio pelo Of .. Mas o problema é tratar este String

Pois seu valor não é constante..

Imagine um commandText do TSqlDataSet .. Pelo Objecto Inspector
vc pode escrever qq Select nesta propriedade

claro que se vc colocar um Select errado , posteriormente na abertura
open , ele ira reclamar.. Agora imagine a situação que vc so escreve-sse
neste propriedade atraves de um Framework ( que no meu caso) é
um editor de propriedades que so lhe permitisse escrever Select Corretos

Para isto esta propriedade tem que ser ReadOnly .. para so aceitar
por analogia ( selects corretos )

Não sei se vc entendeu...


GOSTEI 0
Acacio

Acacio

22/05/2009

Bom dia, ainda não sei se entendi, mas a princípio nesse exemplo que tu passou seria um verificador de sintaxe. Onde verificaria o teu sql. Já fiz algo parecido na faculdade.

Exemplo num sql ele começaria a verificar se a palavra é select, depois
só pode vir *, um campo um sub select etc, e assim por diante.
Deve ter algo parecido na internet.


GOSTEI 0
Marco Salles

Marco Salles

22/05/2009

eu sei que é dificil entender as dúvidas . e as necessidades . com eu
passo por isto

pois bem , na verdade ja me forneceram a solução . Uma das alternativas
é deixar o Objecto Inspector readOnly para uma determinada propriedade

Isto foi obtido atraves do editor de propriedades , mas com uma palavra
reservada [b:147f0689f6]paReadOnly[/b:147f0689f6]

function TListFieldProperty.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog,paReadOnly];
end;


Ao adicionar esta palavra reservada , o Objecto Inspector fica ReadOnlly
para a Propriedade

Com isto , so é possivel alterar o valor da propriedade pelo editor de
propriedades ( dando clik nas reticencias) ...

quero agradecer sua contribuição e eu sei o qunt é dificil entender a
necessidade dos outros .

muito obrigado.


GOSTEI 0
POSTAR