GARANTIR DESCONTO

Fórum Criar procedure limpaCampos , aonde declarar ? #593044

08/05/2018

0

Sou iniciante.
Preciso criar uma procedure para limpar alguns edit.
Como faço para criar a procedure ? Aonde declaro?
Ruberson Pommerening

Ruberson Pommerening

Responder

Post mais votado

08/05/2018

Fala brow, tudo show?

vc pode criar essa procedure em alguma unit global sua ( que todas as telas usam ).

ai na procedure vc faz algo do tipo:

for i:= 0 to componentcount - 1 do // vai listar todos os componentes do form
begin
if (components[I] is TEdit) then
begin
TEdit(components[I]).Clear;
end;// end if

end; // end for

Ai ele vai listar todos os componentes, se for algum Edit ele vai limpar.

Caso vc queira limpar alguns em específico, pode fazer uma parada assim.... Muda a tag deles pra 999 e usa o mesmo código, validando a tag.

for i:= 0 to componentcount - 1 do // vai listar todos os componentes do form
begin
if (components[I] is TEdit) then //olha se é um edit
begin
if (components[I]).Tag = 999 then // verifica se é um dos que pode limpar
begin
TEdit(components[I]).Clear;
end;// end if
end;// end if

end; // end for



acho que é isso brow

qualquer coisa retorna pra nós ai.

Bons códigos

Roberto Wutke

Roberto Wutke
Responder

Gostei + 2

Mais Posts

09/05/2018

Ruberson Pommerening

Boa tarde,<br />
<br />
Publiquei a procedure em Type<br />
<br />
procedure Limpa_Campos(edits: String);<br />
<br />
A procedure implementada esta assim:<br />
<br />
procedure TfrmLanDeposito.Limpa_Campos(edits: string);<br />
var<br />
i: Integer;<br />
begin<br />
for i := 0 to ComponentCount -1 do<br />
if Components[i] is TMaskEdit then<br />
begin<br />
TMaskEdit(Components[i]).Text := '''';<br />
end;<br />
if Components[i] is TEdit then<br />
begin<br />
TEdit(Components[i]).Text := '''';<br />
end;<br />
end;<br />
<br />
Quando coloco a procedure no onclick do buton não compila<br />
<br />
Limpa_Campos([EditCodConta.Text,EditNomeBanco.Text]);
Responder

Gostei + 0

09/05/2018

Ruberson Pommerening

Boa tarde.

Publiquei a procedure dentro de type.

procedure Limpa_Campos(edits: String);

Implementei a procedure.

procedure TfrmLanDeposito.Limpa_Campos(edits: string);
var
i: Integer;
begin
for i := 0 to ComponentCount -1 do
if Components[i] is TMaskEdit then
begin
TMaskEdit(Components[i]).Text := '';
end;
if Components[i] is TEdit then
begin
TEdit(Components[i]).Text := '';
end;
end;

Aqui eu coloco a procedure para limpar os campos que eu quero no onclick do buton.

Limpa_Campos([EditCodConta.Text,EditNomeBanco.Text]);

Mais não compila
da esse erro
[Error] uDeposito.pas(179): Incompatible types: 'Integer' and 'TCaption'
Responder

Gostei + 0

09/05/2018

Natanael Ferreira

Pra que funcione da maneira que você postou é preciso trabalhar com Array.

Altere a publicação da procedure para:

procedure Limpa_Campos(edits: array of string);

Altere a implementação para:

procedure TfrmLanDeposito.Limpa_Campos(edits: array of string);
var
  i: Integer;
  Str: string;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TEdit then
      for Str in edits do
        if Str = TEdit(Components[i]).Name then
          TEdit(Components[i]).Clear;

    if Components[i] is TMaskEdit then
      for Str in edits do
        if Str = TMaskEdit(Components[i]).Name then
          TMaskEdit(Components[i]).Clear;
  end;
end;

Exemplo de uso:

Limpa_Campos([Edit1.Name, Edit2.Name, MaskEdit1.Name]);

Dessa maneira, você poderá limpar somente os campos que quiser.
Responder

Gostei + 0

10/05/2018

Ruberson Pommerening

Só para dar o retorno achei uma maneira mais fácil,
Como eu precisava limpar apenas alguns edits e maskedit do meu form , fiz da seguinte maneira
Fiz uma procedure dessa forma
procedure TfrmLanDeposito.Limpa_Campos;
begin
EditCodConta.Text := '';
EditNomeBanco.Text := '';
EditValor.Text := '';
EditDescricao.Text :='';
MaskEditData.Text := '';
end;

e adicionei a procedure no meu evento do buton.
Vlw obrigado
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar