Olá Pessoal, aqui estamos em mais uma quick tips. Hoje vou mostar para vocês uma rotina genérica utilizando reflaxão para validação de campos requiridos. Para isso vamos criar uma aplicação com o Delphi. Estarei usando aqui  conexão com BDE na tabela customer.db. Crie uma tela conforma a imagem abaixo:



Para que tudo possa funcionar como pretendido vamos em cada um dos labels apontar a propriedade FocusControl para o seu respectivo DBEdit. Por exemplo aponte o label CustNo para o DBEdit1 e assim por diante. Feito isso vamos criar uma nova rotina em novo form. Abaixo esta o código. (Dar uses em TypInfo)







Repare que passamos um form como parametro. Fazemos um loop nos componentes e para cada label encontrado verificamos se o memso esta com a propriedade FocusControl configurada. Caso esteja, verificamos se o objeto setado em focus control possui uma propriedade publicada chamada DataSource. Extraimos este objeto para a variavel DS com o metodo GetObjectProp.

Em seguida verificamos se há um propriedade DataField e caso positivo extrimos o nome do campo para a variavel Field. Por fim vemos se este campo é requerido e se esta vazio. Caso isso seja verdadeiro então alteramos a COR do label e com isso o usuario de forma simples ja identifica todos os campos requeridos.

Selecione o seu dataset e no evento BeferoPost coloque o codigo abaixo:



Feito isso execute a aplicação, clique em incluir e sem preencher qualquer campo clique em gravar. Observe na figura abaixo  a aplicação em execução.




Bem pessoal, então é isso. Grande abraço e até mais !!!