Código
ValidaCampos(self,Dm.NomeDaIBQuery);
Passando os parâmetros para a procedure o código a seguir irá procurar quais campos estão em branco na IBQuery referida e procurar os obrigatórios e verificar se este está preenchido. Em seguida ele irá focar o cursor do teclado ao campo dentro do formulário varForm.
OBS: Na IBQuery recomendo que troque o DisplayLabel de cada campo para que a mensagem apareça com o seu nome corretamente. Se desejar alterar para IBTable é só trocar TIBQuery para TBTable ou qualquer outro componente no estilo Query ou Table.
//Coloque esta procedure dentro de um cadastro ou dentro de uma Unit onde se declara todos métodos que serão compartilhados com todo o seu sistema.
procedure TFCadCliente.ValidaCampos(varForm: TForm;HxQuery: TIBQuery);
var x,y: Integer;
begin
//Procura campos na query que não estão preenchidos
For x := 0 To HxQuery.FieldCount -1 Do
begin
If HxQuery.FieldByName(HxQuery.Fields[x].FieldName).Required = True then //Testa campo obrigatório
If HxQuery.FieldByName(HxQuery.Fields[x].FieldName).AsString = '' then //testa campo obrigatório em branco
begin
MessageDlg('O Campo '+HxQuery.Fields[x].DisplayLabel+' é obrigatório!',mtInformation,[mbOk],0);
With TForm(varForm) do
begin
// Procura e Envia o foco ao campo no formulario
For y := 0 To ComponentCount -1 Do
begin
If Components[y] Is TDbEdit Then
begin
If TDbEdit(Components[y]).DataField = HxQuery.Fields[x].FieldName Then
begin
TDbEdit(Components[y]).SetFocus;
abort;
end;
end
else
If Components[y] Is TDbcomboBox Then
begin
If TDbcomboBox(Components[y]).DataField = HxQuery.Fields[x].FieldName Then
begin
TDbcomboBox(Components[y]).SetFocus;
abort;
end;
end
else
If Components[y] Is TDbLookupComboBox Then
begin
If TDbLookupComboBox(Components[y]).DataField = HxQuery.Fields[x].FieldName Then
begin
TDbLookupComboBox(Components[y]).SetFocus;
abort;
end;
end
else
If Components[y] Is TDBMemo Then
begin
If TDBMemo(Components[y]).DataField = HxQuery.Fields[x].FieldName Then
begin
TDBMemo(Components[y]).SetFocus;
abort;
end;
end;
end;
end;
Abort;
end;
end;
end;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009