desativar todos os componentes de um form
Oi gente, tem como desativar todos os componentes do meu form?
Estou fazendo assim atualmente
Até ai tudo bem, mas se forem 100 componentes no meu formulário, vai dar um trabalhão, alguém tem ideia de como melhorar isso ou só tem deste jeito mesmo?
Obrigada..
Estou fazendo assim atualmente
btnnovo.enabled:=false; btgravar.enabled:=false; btndeletar.enabled:=false; btcancelar.enabled:=false;
Até ai tudo bem, mas se forem 100 componentes no meu formulário, vai dar um trabalhão, alguém tem ideia de como melhorar isso ou só tem deste jeito mesmo?
Obrigada..
Carla Batista
Curtidas 0
Melhor post
Bruno Leandro
08/08/2012
Ola é simples
o IsPublishedProp esta verificando se no componente tal existe a propriedade enabled IsPublishedProp(Components[i], Enabled)
e o SetVariantProp esta setando false na propriedade enabled no componente tal SetVariantProp(Components[i], Enabled, False);
o IsPublishedProp esta verificando se no componente tal existe a propriedade enabled IsPublishedProp(Components[i], Enabled)
e o SetVariantProp esta setando false na propriedade enabled no componente tal SetVariantProp(Components[i], Enabled, False);
GOSTEI 1
Mais Respostas
Bruno Leandro
07/08/2012
Ola Carla voce pode utilizar conforme modelo a seguir, o ComponentCount retorna o numero de componentes na tela e o if verifica se existe o Enabled se existir ele seta como false
for i := 0 to Screen.ActiveForm.ComponentCount-1 do
begin
if IsPublishedProp(Components[i], Enabled) then
SetVariantProp(Components[i], Enabled, False);
end;
for i := 0 to Screen.ActiveForm.ComponentCount-1 do
begin
if IsPublishedProp(Components[i], Enabled) then
SetVariantProp(Components[i], Enabled, False);
end;
GOSTEI 0
Carla Batista
07/08/2012
Oi Bruno, que código hein? rsrs, não entendi foi nd, ispublish? o que isso faz?
Gostaria de entender pra poder adaptar :(..
Obrigada!
Gostaria de entender pra poder adaptar :(..
Obrigada!
GOSTEI 0
Marco Salles
07/08/2012
Sem utilizar Rtti acredito que funciona
para chamar
desta forma vc seleciona os controles que irão sofrer a acão atraves de uma seleção , utilizando a propriedade
tag do mesmo .. No caso anterior somente componetes definidos com o valor do tag zero (Padrão) serão afetados
de qualquer modo todos os caminhos vão a Roma
procedure Habilitar(inibir:boolean;_Parent:Twincontrol;_Tag:word=0);
var
I: Integer;
begin
for I := 0 to pred(_Parent.ControlCount) do
if _Parent.Controls[i].Tag =_Tag then //pre seleção
_Parent.Controls[i].Enabled:=inibir;
end;para chamar
desta forma vc seleciona os controles que irão sofrer a acão atraves de uma seleção , utilizando a propriedade
tag do mesmo .. No caso anterior somente componetes definidos com o valor do tag zero (Padrão) serão afetados
procedure TForm2.Button1Click(Sender: TObject); begin Habilitar(false,self,0); end;
de qualquer modo todos os caminhos vão a Roma
GOSTEI 1
Carla Batista
07/08/2012
Obrigada Bruno, agora entendi a sua explicação. muito legal!
Obrigada mesmo..
Obrigada mesmo..
GOSTEI 0
Carla Batista
07/08/2012
Marco, realmente todos os caminhos levam a Roma!
Gostei do seu exemplo, como fazer a mesma coisa de várias formas, muito legal, vocês são feras!
Obrigada gente, agora meu projeto esta ficando muito bonito, dessa forma evita mts erros do usuário.
Até mais
Gostei do seu exemplo, como fazer a mesma coisa de várias formas, muito legal, vocês são feras!
Obrigada gente, agora meu projeto esta ficando muito bonito, dessa forma evita mts erros do usuário.
Até mais
GOSTEI 0