validar campos edits e maskedits

Delphi

07/05/2018

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

Lucas Domiciano

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

07/05/2018

Vou compartilhar uma função que uso e funciona bem.

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.
GOSTEI 1

Mais Respostas

Lucas Domiciano

Lucas Domiciano

07/05/2018

Obrigado , deu certo !!!!
GOSTEI 0
POSTAR