Componentes Property Objecto Inspector
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
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
Curtidas 0
Respostas
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;
2. Para deixar ela somente leitura basta tirar o write na criação
deixa assim
property teste :string read fteste;
GOSTEI 0
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
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;
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
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...
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
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.
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
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]
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.
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