Вниз
Скачать: CL | DM;

TApplicationEvents.OnException получить имя метода из Exception   Найти похожие ветки 

 
Rembo   (2009-05-31 01:14) [0]

В методе TApplicationEvents.OnException прописал это:
(Sender as TComponent).Name и смог писать в лог имя компонента который вызвал иссключение, есть ли способ узнать имя метода который вызвал иссключение?
(Sender as TComponent).MethodName() наверно позволит это, но что указывать в параметре не знаю. Наверно можно брать адрес из Exception.message пропарсив строку:
Access violation at address 0046DCD5 in module "Project1.exe". Read of address 00000000: n/a
но может есть путь попроще?


 
Игорь Шевченко ©   (2009-05-31 01:30) [1]

http://www.delphi-jedi.org jcl jcldebug.pas

uses
 JclDebug;

procedure TfMain.OnApplicationException(Sender: TObject; E: Exception);

 function StackTrace: string;
 var
   SL: TStringList;
 begin
   SL := TStringList.Create;
   try
     with TJclStackInfoList.Create(True, 0, nil) do
     try
       AddToStrings(SL);
       Result := SL.Text;
     finally
       Free;
     end;
   finally
     SL.Free;
   end;
 end;

var
 F: TextFile;
begin
   assignFile(F, LogFileName);
   if FileExists(LogFileName) then
     append(F)
   else
     rewrite(F);
   try
     writeln(F, StackTrace);
   finally
     CloseFile(F);
   end;
   Application.ShowException(E);
end;


 
Германн ©   (2009-05-31 01:51) [2]

Ещё проще http://www.eurekalog.com/
И готовая и дешёвая.


 
Rembo   (2009-05-31 01:57) [3]

А почему

p:=Ptr(StrtoInt(s));
ShowMessage((Sender as TComponent).MethodName(p));

неработает?
p:pointer;
s:string; - содержит вырезаный адрес из строки "Access violation at address 0046DCD5 in module..."
Выдает пустоту(


 
Игорь Шевченко ©   (2009-05-31 02:19) [4]


> А почему
>
> p:=Ptr(StrtoInt(s));
> ShowMessage((Sender as TComponent).MethodName(p));
> неработает?


I give you three guesses


 
clickmaker ©   (2009-06-01 11:47) [5]

> Выдает пустоту(

а что должен выдать?


 
clickmaker ©   (2009-06-01 12:11) [6]

If Address does not point to a published method of the object, MethodName returns an empty string
(c) Help



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
15-1243409989
Skyle
2009-05-27 11:39
2009.07.26
Разобрать PDF в gif постранично.


2-1243581095
texx
2009-05-29 11:11
2009.07.26
Как создать большой файл


2-1243667222
Иван
2009-05-30 11:07
2009.07.26
Многострочный текст в константах


15-1242757296
Кто б сомневался
2009-05-19 22:21
2009.07.26
Как узнать что отменили перезагрузка в чужой программе


2-1243260477
Ega23
2009-05-25 18:07
2009.07.26
DevExpress TcxGrid - как добраться до НД при MultiSelet?




   Наверх