Se vai resolver eu não sei, nao tenho como testar. Mas após o if 
F.Components[i] is TLabel then 
 
Coloque um begin e feche ( end;) no fim da rotina.
 
Com isso vai pelo menos deixar de dar erro ja q deste jeito o variavel lbl esta 
sendo usada sem ter sido criada.
 
 
Eduardo


Eduardo Silva ® <[EMAIL PROTECTED]> wrote:
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]



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!. 



                
---------------------------------
Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora!

[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