Ajuda - Busca - Membros - Calendário
Versão Completa: Listar todos os componentes no form
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Ronaldo Lanhellas
Gostaria de por Enabled :=False para todos os meus componentes dentro do form tais como: Labels, Edits, e outros.
Tem como fazer isso sem ter que ir em 1 por 1 ?
João Paulo Taraciuk
Vai selecionando um por um com a tecla SHIFT pressionada e depois altera a propriedade que você precisa ou seleciona todos de uma vez clicando e arrastando o mouse sobre eles.
flavioavilela
bom dia, supondo que você tem Edit's, Label's, Memo's... tente assim:

CODE
procedure Desabilita_Campos;
var
  X: Integer;
begin
  for x := 0 to FrmTal.ComponentCount - 1 do
    if FrmTal.Components[X] is TEdit then
      TEdit(FrmTal.Components[X]).Enabled:= false
    else if FrmTal.Components[X] is TLabel then
      TLabel(FrmTal.Components[X]).Enabled:= false
    else if FrmTal.Components[X] is TMemo then
      TMemo (FrmTal.Components[X]).Enabled:= false
end;

você pode também, criar uma procedure chamada Habilita_Campos, para setar o Enabled:= true... assim, você pode habilitar tudo e/ou desabilitar tudo quando precisar...
Douglas Soares
Ou simplesmente usar a mesma função passando parametros:

CODE
procedure Controle_Campos(Ativo : Boolean);
var
  X: Integer;
begin
  for x := 0 to frmTal.ComponentCount - 1 do
    if frmTal.Components[X] is TEdit then
      TEdit(frmTal.Components[X]).Enabled:= Ativo
    else if frmTal.Components[X] is TLabel then
      TLabel(frmTal.Components[X]).Enabled:= Ativo
    else if frmTal.Components[X] is TMemo then
      TMemo (frmTal.Components[X]).Enabled:= Ativo
end;


Para Ativar:
Controle_Campos(True);

Para Desativar:
Controle_Campos(False);

Abraços
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.