Cara a sua rotina funcionou direitinho...

Obrigado.
  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
nome de Marcelo Silva
  Enviada em: terça-feira, 26 de abril de 2005 11:54
  Para: delphi-br@yahoogrupos.com.br
  Assunto: Re: [delphi-br] Validar campos em um form (Contribuindo :-))


  Colega esquece tudo o que viu e usa essa simples procedure que criei e
veja se funciona aí...


  procedure ValidaCampo(dts: TIBDataSet);
  var
    i: Integer;
  begin
    for i:=0 to dts.FieldCount-1 do begin
      if ((dts.Fields.Fields[i].Required)and(dts.Fields.Fields[i].IsNull))
then begin
        ShowMessage('O Campo '+dts.Fields.Fields[i].DisplayLabel+' é
requerido');
        dts.Fields.Fields[i].FocusControl;
        Abort;
      end;
    end;
  end;


  Exemplo de uso:

  // Antes de validar jogue o fóco para um componente neutro (uma toolbar ou
um GroupBox sei lá...)
  ToolBar1.SetFocus; // Veja item 5
  ValidaCampo(SeuDataSet);


  Algumas recomendações:

  1- Onde está TIBDataSet é o seu tipo de DataSet, no meu caso estou usando
da palheta Interbase então a classe é TIB...
  2- A sequencia de mensagem está assossiada a posição do campos no lisfield
do dataset então este deve estar na sequencia que quer... o que é simples
... é só arrastar o campo na posição desejada na lista.
  3- Esta procedure deve ser usada antes do post do referido dataset...
  4- Esta procedure pode ser colocada em uma Unit publica de funçoes desta
forma ser reutilizada quando quiser.
  5- Lembre-se de que um campo só é considerado o seu valor quando este
perde o fóco (o que faz sentido)


  Explicando:
  O que estamos fazendo aqui é verificar se existem campos requeridos no
DataSet indicado e se esses estão vazios.


  Marcelo Silva
  Cel. 11 9693-4251
  ICQ - 49224093
  MSN [EMAIL PROTECTED]



  ----- Original Message -----
  From: Rubem Rocha
  To: delphi-br@yahoogrupos.com.br
  Sent: Tuesday, April 26, 2005 11:33 AM
  Subject: RES: [delphi-br] Validar campos em um form


  O que acontece com essa rotina? Qual a mensagem de erro que ocorre?
  []s

  -----Mensagem original-----
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Eduardo Silva ®
  Enviada em: terça-feira, 26 de abril de 2005 09:18
  Para: Grupo Delhpi-br
  Assunto: [delphi-br] Validar campos em um form



  Galera tenho a função abaixo para fazer a validação e destacar os campos
obrigatórios em um form.

  Essa função foi passada em um número da revista Clube Delphi que eu não me
lembro, mas ela não está funcionando.

  Alguém poderia me dar uma mão e ver o que está errado ?

  Obrigado.

  function Valida(F: TForm): boolean;
  var
     i   : integer;
     lbl : TLabel;
     ds  : TDataSource;
     fn  : string;
     c   : TObject;
  begin
     for i := 0 to F.ComponentCount - 1 do
     begin
        if F.Components[i] is TLabel then
           lbl := F.Components[i] as TLabel;
        lbl.Font.Color := clWindowText;
        lbl.Font.Style := [];
        if lbl.FocusControl <> nil then
        begin
           c := lbl.FocusControl;
           {Declare TypInfo no uses}
           if IsPublishedProp(c,'DataSource') then
           begin
              ds := TDataSource(GetObjectProp(c,'DataSource'));
              if IsPublishedProp(c,'DataField') then
              begin
                 fn := GetStrProp(c,'DataField');
                 if ds.DataSet.FieldByName(fn).Required then
                    if ds.DataSet.FieldByName(fn).IsNull then
                    begin
                       lbl.Font.Style := [fsBold];
                       lbl.Font.Color := clRed;
                    end;
              end;
           end;
        end;
     end;
  end;

                      ~\\|//~
                      -(o o)- o--------------oOOOo--(_)--oOOOo-------------o
  |                                            |
  |           Eduardo de Almeida Silva         |
  |               Kobra Sistemas               |
  |  [EMAIL PROTECTED]  -   (14)3263-0326   |
  |                                            |
  |                .oooO   Oooo.               |
  o----------------(   )---(   )---------------o
                    \ (     ) /
                     \_)   (_/



  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:  [EMAIL PROTECTED]
ou [EMAIL PROTECTED]

  Links do Yahoo! Grupos









  --
  No virus found in this incoming message.
  Checked by AVG Anti-Virus.
  Version: 7.0.308 / Virus Database: 266.10.3 - Release Date: 25/04/2005


  --
  No virus found in this outgoing message.
  Checked by AVG Anti-Virus.
  Version: 7.0.308 / Virus Database: 266.10.3 - Release Date: 25/04/2005


  *************************************************************************

  Esta mensagem, incluindo os seus anexos, contém informações confidenciais
destinadas a indivíduo e propósito específicos, e é protegida por lei. Caso
você não seja o citado indivíduo, deve apagá-la imediatamente. É
terminantemente proibida a utilização, acesso, cópia ou divulgação não
autorizada das informações presentes neste email.  As informações contidas
nesta mensagem e em seus anexos são de responsabilidade de seu autor, não
representando idéias, opiniões, pensamentos ou qualquer forma de
posicionamento por parte da Fundação Desembargador Paulo Feitoza.



  The information contained in this communication is confidential, is law
protected, and is intended only for the business use of the addressee. If
you have received this communication in error, please immediately delete it.
It's forbidden the unauthorized use, access, copy or disclose of the
information contained in this communication.  The content of this message is
responsibility of the author, and does not represent ideas, opinions,
thoughts or any kind of statement of Fundação Desembargador Paulo Feitoza.



  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



  Yahoo! Grupos, um serviço oferecido por:
  PUBLICIDADE





  Links do Yahoo! Grupos

  Para visitar o site do seu grupo na web, acesse:
  http://br.groups.yahoo.com/group/delphi-br/

  Para sair deste grupo, envie um e-mail para:
  [EMAIL PROTECTED]

  O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
Yahoo!.





  Internal Virus Database is out-of-date.
  Checked by AVG Anti-Virus.
  Version: 7.0.308 / Virus Database: 266.9.18 - Release Date: 19/04/2005
    ----------

  Internal Virus Database is out-of-date.
  Checked by AVG Anti-Virus.
  Version: 7.0.308 / Virus Database: 266.9.18 - Release Date: 19/04/2005


  [As partes desta mensagem que não continham texto foram removidas]



  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por:

                    São Paulo Rio de Janeiro Curitiba Porto Alegre Belo
Horizonte Brasília




----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a