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