Fórum Criar procedure limpaCampos , aonde declarar ? #593044
08/05/2018
0
Preciso criar uma procedure para limpar alguns edit.
Como faço para criar a procedure ? Aonde declaro?
Ruberson Pommerening
Curtir tópico
+ 0Post mais votado
08/05/2018
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
Gostei + 2
Mais Posts
09/05/2018
Ruberson Pommerening
<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]);
Gostei + 0
09/05/2018
Ruberson Pommerening
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'
Gostei + 0
09/05/2018
Natanael Ferreira
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.
Gostei + 0
10/05/2018
Ruberson Pommerening
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)