Função Genérica - Enabled = false

Delphi

23/12/2003

Olá povo

Tenho uma tela um pouco grande com vários componentes, e tenho uma opção de detalhar, sem permitir edição. Estou tentando desenvolver uma função genérica que altere a propriedade Enabled para false para todos os componentes da tela, ou pelo menos a maioria em comum, soh que não estou conseguindo.
Estou tentando assim, mas a propriedade ComponentCount resulta um número negativo e mto grande e consequentemente não entra no for. Eis o código:

for i := 0 to Form.ComponentCount -1 do
if Form.Components[i] is TCustomEdit then
(Form.Components[i] as TCustomEdit).enabled:= false

Alguém tem algo assim pronto ou pode me dar uma dica

Obrigado


Jrs.net

Jrs.net

Curtidas 0

Respostas

Beppe

Beppe

23/12/2003

Tenta a coleção Controls.
for i := 0 to Form.ControlCount -1 do 
if Form.Controls[i] is TCustomEdit then 
(Form.Controls[i] as TCustomEdit).enabled:= false 



GOSTEI 0
Jrs.net

Jrs.net

23/12/2003

Tenta a coleção Controls.
for i := 0 to Form.ControlCount -1 do 
if Form.Controls[i] is TCustomEdit then 
(Form.Controls[i] as TCustomEdit).enabled:= false 


putz..cara deu Access Violation na hora de ler a propriedade ControlCount...Alguma idéia? :roll: :roll:


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

23/12/2003

tem certeza que o form esta criado na hora em que chama esta função?


GOSTEI 0
Jrs.net

Jrs.net

23/12/2003

[quote:d5c78491d5=´Marcelo Saviski´]tem certeza que o form esta criado na hora em que chama esta função?[/quote:d5c78491d5]

Então..o Access Violation eu consegui resolver ...agora to estranhando que a propriedade Form.ControlCount retorna apenas 3 valores. Ela não deveria retornar o total de compoentens da tela? e consequentemente não passa no if que testa a classe do componente.. to chamando a função assim:

DisableObjects(frmCADImovel);

Alguma idéia...????? :?: :?: :cry:


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

23/12/2003

assim:

vc tem 2 edits, coloca eles no form, eles vão aparecer no Control do form

vc coloca 2 panels, 2 edit em cada panel, os panels vão aparecer no controls do form, e os edits no control dos panels


GOSTEI 0
Beppe

Beppe

23/12/2003

Mas se você desabilitar um panel por exemplo, os controles dentro do panel tabém estarão inacessíveis.


GOSTEI 0
POSTAR