Senhores,

No Clipper isto era possível porque lá o codigo fonte era embutido compilado 
junto com o interpretador de comandos do DBase dentro de um executável. No caso 
do Delphi, que usa um compilador que gera instruções puras de maquina x86, não 
há como guardar o nome e o numero da unit que provocou erro. O nome da Unit e 
da rotina (Função ou procedure) ainda é possível. Vide a rotina abaixo que vos 
mando. Agora o numero exato da linha na unit, não tem como. Ou pelo menos eu 
nunca consegui achar isto.


function GetUnitName(argObject: TObject): string;
//
// Pega o nome da unit aonde ocorreu o erro
//
begin
  if (argObject.ClassInfo <> nil) then
  begin
    ptrTypeData := GetTypeData(argObject.ClassInfo);
    Result := ptrTypeData.UnitName;
  end;
end;


Screen.ActiveForm.Name -> Nome do Form ativo no momento do erro.
Screen.ActiveControl.Name -> Nome do Controle ativo (Button, label, checkbox) 
no momento do erro.
Screen.ActiveControl.MethodName() -> Nome do método (função ou procedimento) 
aonde ocorreu o erro.


[]s
 
 
Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
wchag...@bol.com.br
http://www.geocities.com/SiliconValley/Bay/1058
http://delphitocorporerm.blogspot.com/
MSN: whitesock...@hotmail.com
SKYPE: WalterChagasJr


  ----- Original Message ----- 
  From: Leonardo Quinino 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, February 27, 2009 11:04 AM
  Subject: Re: [delphi-br] Retornar a Linha & Unit


  Eu desistir de procurar isso no delphi, a unica coisa que ainda nao
  conseguir fazer em relacao ao clipper foi justamente isso, ( eu programei em
  clipper numa epoca jurassica) rs :)...

  a solucao foi rever meus conceitos e valores ahahah,,, usar mais try
  exception, mostrar as mensagens do erro exption E.ErroMessage.. etc....

  gravar logs com telas no momento do erro...

  Mas realmente com a praticidade do clipper, nao encontrei,, talvez seja em
  funcao do tipo de ambiente de trabalho (dos / windows) ou talvez em relacao
  aos metodos de trabalho interno do delphi nao permitir essa informacao.

  Bem a minha opniao bem simploria do assunto é essa, mas posso estar falando
  por ignorancia (falta de conhecimento).

  Seria bom esse assunto, a solucao pode existir, se alguem tiver essa
  solucao,, nos poupe de uma theread sem fim... .r S:)))))) !!!

  2009/2/26 José Mário Silva Guedes <jmariogue...@gmail.com>

  > Olá amigos...
  >
  > Passei o dia fazendo umas rotinas de LOGs e eis que surge a necessidade
  > clássica: Pegar o nome da Unit e o número da linha.
  >
  > Pesquisei e achei o de sempre... Assert, arquivo MAP...
  >
  > Será que algum colega conseguiu resolver este tipo de necessidade? Algum
  > expert ou componente resolve?
  >
  > Um forte abraço!
  >
  > --
  > José Mário Silva Guedes
  > Analista Programador Delphi
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  > 
  >

  -- 
  Leonardo Quinino

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


  

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

Responder a