Fórum validar campos edits e maskedits #593005
07/05/2018
0
Bom dia , eu estou com um problema , tenho um form com 5 campos edits e 2 maskedits , eu não estou conseguindo fazer a validação de todos os campos , queria que só após preenchesse todos os campos eu conseguisse cadastrar um aluno ! Alguém tem alguma ideia de como fazer isso ?
Lucas Domiciano
Curtir tópico
+ 0
Responder
Post mais votado
07/05/2018
Vou compartilhar uma função que uso e funciona bem.
Em cada componente (Edit, MaskEdit) preencha a propriedade ImeName com a referência deste componente para identificação.
Exemplo: No edit para entrada de um Nome, preencha Nome na propriedade ImeName.
E deixe a propriedade Tag com o mesmo número para todos os componentes que serão validados ao mesmo tempo.
Exemplo de uso:
O segundo parâmetro da função é o número da Tag para todos os componentes que serão validados.
function ValidaCampos(form: TCustomForm; tg: Integer): Boolean;
var
i: Integer;
MSG: string;
Foco: Boolean;
Lista: TList;
begin
Result := False;
Foco := False;
MSG := EmptyStr;
Lista := TList.Create;
try
form.GetTabOrderList(Lista);
for i := 0 to Lista.Count - 1 do
begin
if TControl(Lista[i]) is TMaskEdit then
if (TMaskEdit(Lista[i]).Tag = tg) and (Trim(TMaskEdit(Lista[i]).Text) = EmptyStr) then
begin
MSG := MSG + #13 + ''- '' + TMaskEdit(Lista[i]).ImeName;
if Foco = False then
begin
TMaskEdit(Lista[i]).SetFocus;
Foco := True;
end;
end;
if TControl(Lista[i]) is TEdit then
if (TEdit(Lista[i]).Tag = tg) and (Trim(TEdit(Lista[i]).Text) = EmptyStr) then
begin
MSG := MSG + #13 + ''- '' + TEdit(Lista[i]).ImeName;
if Foco = False then
begin
TEdit(Lista[i]).SetFocus;
Foco := True;
end;
end;
end;
if MSG <> EmptyStr then
Begin
MessageDlg(''Campo(s) obrigatório(s):'' + #13 + #13 + Trim(MSG), mtError, [mbOk], 0);
Result := False;
End
else
Result := True;
finally
FreeAndNil(Lista);
end;
end;Em cada componente (Edit, MaskEdit) preencha a propriedade ImeName com a referência deste componente para identificação.
Exemplo: No edit para entrada de um Nome, preencha Nome na propriedade ImeName.
E deixe a propriedade Tag com o mesmo número para todos os componentes que serão validados ao mesmo tempo.
Exemplo de uso:
if not ValidaCampos(Self, 0) then
Exit;
// Coloque aqui o código para cadastrar o aluno.O segundo parâmetro da função é o número da Tag para todos os componentes que serão validados.
Natanael Ferreira
Responder
Gostei + 1
Mais Posts
07/05/2018
Lucas Domiciano
Obrigado , deu certo !!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)