Eu uso assim:

 

Procedure LimpaCampos(Formulario: TForm);

var

  wi_Count : Integer;

 

begin

 

   for wi_Count := 0 to Formulario.ComponentCount - 1 do

      if Formulario.Components[wi_Count] is TCustomEdit then

         (Formulario.Components[wi_Count] as TCustomEdit).Clear

      else

      if Formulario.Components[wi_Count] is TCombobox then

      begin

         (Formulario.Components[wi_Count] as TCombobox).Text := '';

         (Formulario.Components[wi_Count] as TCombobox).ItemIndex := 0;

      end;

 

end;

 

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de BandaLemuel
Enviada em: segunda-feira, 27 de outubro de 2008 12:29
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Erro função limpar todos os Edits

 

Tente assim...

procedure LimpaEdit(Form: TForm);
var i : Integer;

begin

for i := 0 to Form.ComponentCount -1 do
begin //Adcione este Begin....

if Form.Components[i] is TDBEdit then

begin

TDBEdit(Form.Components[i]).Text := '';

end

//TDBComboBox
//Adiciona else
else if Form.Components[i] is TDBComboBox then

begin

TDBComboBox(Form.Components[i]).Text := '';

end;

end; //Fecha o Begin q vc criou....
end;

O que estava acontecendo é que o laço for que vc criou estava sendo
executado apenas a parte do DBEdit... e quando ele tentava o Combobox...
dava erro... Tenta ae...

Wesley

From: Eduardo Melo 
Sent: Monday, October 27, 2008 7:47 AM
To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>  
Subject: [delphi-br] Erro função limpar todos os Edits

Olá Pessoal,

Criei um procedimento que limpa todos os DBEdits e DBCombobox do meu
formulário, porem rodando o sistema pelo delphi quando chamo esse
procedimento ele me retorna o seguinte erro:

'..raised exceptiom class EListError with message 'List index out of
bounds(43)''

Porem rodando o sistema direto pelo executavel não apresenta nenhum erro.

Mas gostaria de saber o porque disso para não ter problemas futuro.

Segue o comando:

procedure LimpaEdit(Form: TForm);

var i : Integer;

//ComponentCount: Integer;

begin

for i := 0 to Form.ComponentCount -1 do

if Form.Components[i] is TDBEdit then

begin

TDBEdit(Form.Components[i]).Text := '';

end;

//TDBComboBox

if Form.Components[i] is TDBComboBox then

begin

TDBComboBox(Form.Components[i]).Text := '';

end;
end;

-- 
Att

Eduardo Melo
3º Sistemas de Informação - Bacharelado
www.meloshospedagem.com.br

[As partes desta mensagem que não continham texto foram removidas]

__________ Information from ESET NOD32 Antivirus, version of virus signature
database 3558 (20081027) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a