Olá galera, nesta Quick Tips irei mostrar como podemos criar um validador de campos no Delphi.

 

Podemos ver abaixo duas functions ValidarCampos o ValidaCamposTag, ambos fazem a mesma coisa, porém o ValidaCampos irá validar todos os Edits/Combobox/Memo que não estiverem preenchidos, já o ValidaCamposTag, irá validar apensar os componentes aos quais a propriedade tag for igual a 1, simulando os componentes obrigatórios.

 

Vamos às implementações :

 

ValidaCampos

 

function TForm1.ValidaCampos: Boolean;

var

  I: Integer;

begin

  for I := 0 to ComponentCount - 1 do

  begin

    if Components[I].ClassType = TEdit then

    if TEdit(Components[I]).Text = '' then

    begin

      Result := true;

      {Se você utiliza Delphi 2009 em diante, verá que tem esta opção

      para poder escrever um conteúdo na caixa de texto quando ela     

      estiver vazia}

      TEdit(Components[I]).TextHint := 'Campo Obrigatório';

      {Outra idéia seria jogar o focu no componente}

      // TEdit(Components[I]).SetFocus;

      Exit;

    end;

    if Components[I].ClassType = TComboBox then

    if TComboBox(Components[I]).Text = '' then

    begin

      Result := true;

      {Se você utiliza Delphi 2009 em diante, verá que tem esta opção

      para poder escrever um conteúdo na caixa de texto quando ela

      estiver vazia}

      TComboBox(Components[I]).TextHint := 'Campo Obrigatório';

      {Outra idéia seria jogar o focu no componente}

      // TComboBox(Components[I]).SetFocus;

      Exit;

    end;

    if Components[I].ClassType = TMemo then

    if TMemo(Components[I]).Text = '' then

    begin

      Result := true;

      {Memo não possui a propriedade TextHint}

      TMemo(Components[I]).SetFocus;

      Exit;

    end;

  end;

end;

 

ValidaCamposTag

 

 

function TForm1.ValidaCamposTag: Boolean;

var

  I: Integer;

begin

  for I := 0 to ComponentCount - 1 do

  begin

    if Components[I].ClassType = TEdit then

    if (TEdit(Components[I]).Text = '') and

 (TEdit(Components[I]).Tag =   1) then

    begin

      Result := true;

{Se você utiliza Delphi 2009 em diante, verá que tem esta opção para poder escrever um conteúdo na caixa de texto quando ela estiver vazia}

TEdit(Components[I]).TextHint := 'Campo Obrigatório';

{Outra idéia seria jogar o focu no componente}

// TEdit(Components[I]).SetFocus;

Exit;

    end;

    if Components[I].ClassType = TComboBox then

    if (TComboBox(Components[I]).Text = '') and   

 (TComboBox(Components[I]).Tag = 1) then

    begin

      Result := true;

      {Se você utiliza Delphi 2009 em diante, verá que tem esta opção   

para poder escrever um conteúdo na caixa de texto quando ela estiver vazia}

TComboBox(Components[I]).TextHint := 'Campo Obrigatório';

{Outra idéia seria jogar o focu no componente}

// TComboBox(Components[I]).SetFocus;

Exit;

    end;

    if Components[I].ClassType = TMemo then

    if (TMemo(Components[I]).Text = '') and

 (TMemo(Components[I]).Tag = 1) then

    begin

      Result := true;

      {Memo não possui a propriedade TextHint}

      TMemo(Components[I]).SetFocus;

      Exit;

    end;

  end;

end;

 

Observe que estamos tratando apenas Edits/Combobox/Memo, porém basta mudar o tipo da classe e poderemos tratar também LabeledEdit1, CheckBox, entre outros.

 

Fico por aqui e na próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br