Fórum Componentes Property Objecto Inspector #370671
22/05/2009
0
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
Curtir tópico
+ 0Posts
22/05/2009
Acacio
2. Para deixar ela somente leitura basta tirar o write na criação
deixa assim
property teste :string read fteste;
Gostei + 0
22/05/2009
Marco Salles
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
25/05/2009
Acacio
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
25/05/2009
Marco Salles
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
26/05/2009
Acacio
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
26/05/2009
Marco Salles
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
Clique aqui para fazer login e interagir na Comunidade :)