[VAZA] 0 Denunciar post Postado Março 17, 2010 Pessoal, Eu tenho a seguinte function: #1function T_frmPrincipal.rodaMenu(Menu: TMenuItem): TMenuItem; #2var #3 I: Integer; #4 menuVerificado: TMenuItem; #5begin #6 for I := 0 to Menu.Count - 1 do #7 begin #8 menuVerificado := Menu.Items; #9 if menuVerificado.Tag = _DM1._cdsMenu.FieldByName('idpai').AsInteger then #10 begin #11 result := menuVerificado; #12 break; #13 end; #14 rodaMenu(menuVerificado); #15 end; #16end; O que acontece ai, eu chamo a mesma função dentro dela, na linha 14. Caso a minha verificação esteja correta, a function volta o TMenuItem na linha 11 e na linha 12, eu dou um break que sai do for. Só que o for anterior continua e retornará um result vazio. Como faço para parar todos os os "FOR", para que minha function volte um TMenuItem e nao nil? Compartilhar este post Link para o post Compartilhar em outros sites
c(++)érebro 0 Denunciar post Postado Março 17, 2010 Não entendi por que você chama a função novamente. Em teoria para que a função sempre devolva um valor, basta manter a estrutura com está mas não chamar novamente a função. Compartilhar este post Link para o post Compartilhar em outros sites
itepi 0 Denunciar post Postado Março 18, 2010 Também não entendi muito bem, mas se foi o que imaginei aqui, um comando 'exit;' no lugar de 'break;' deve resolver seu problema. Compartilhar este post Link para o post Compartilhar em outros sites