Добавляем автоматическую обработку ошибок
На форме располагаем стандартный компонент ApplicationEvents и в обработке события OnException компонента пишем строки: (многоточие - пишите Ваш код, вся суть в другой части кода)
uses
...SyncObjs...
Public
CheckEvent: TEvent;
ClassRef: TClass;
...
procedure TForm1.ApplicationEvents2Exception(Sender: TObject;
E: Exception);
var LogFile: TextFile;
ClassTree: String;
begin // обработка исключений в программе
AssignFile(LogFile,ExtractFilePath(paramstr(0))+'errors.log');
if FileExists(ExtractFilePath(paramstr(0))+'errors.log')
then
begin
Append(LogFile);
WriteLn(LogFile);
end
else
begin
ReWrite(LogFile);
WriteLn(LogFile,'ФИО пользователя: '+...);
WriteLn(LogFile,'Эл. адрес: '+...);
WriteLn(LogFile,'Серийный номер: '+...);
WriteLn(LogFile,'-------------------------------------------------------------');
WriteLn(LogFile,'Платформа: '+...+' (ver. '+...+' build '+...+')');
WriteLn(LogFile,'Тип процессора: '+...);
WriteLn(LogFile,'Память: '+...+' кб');
WriteLn(LogFile,'Сист. пользователь: '+...);
WriteLn(LogFile,'=============================================================');
WriteLn(LogFile);
end;
WriteLn(LogFile);
WriteLn(LogFile,DateToStr(Date)+' '+TimeToStr(Time));
WriteLn(LogFile,'-------------------------------------------------------------');
ClassTree:=E.ClassName;
ClassRef:=E.ClassType;
while ClassRef.ClassParent<>nil do
begin
ClassRef:=ClassRef.ClassParent;
ClassTree:=ClassRef.ClassName+' => '+ClassTree;
end;
WriteLn(LogFile,ClassTree+':');
WriteLn(LogFile,E.Message);
WriteLn(LogFile,'-------------------------------------------------------------');
Flush(LogFile);
CloseFile(LogFile);
Application.MessageBox('Во время работы программы возникла ошибка.
Данные об ошибке сохранены в файл errors.txt.
По возможности передайте файл разработчикам.',
'Ошибка в программе',mb_ok+mb_IconError); end;
В общем, в результате добавления следующего кода в Вашу программу, собирание ошибок программы представляет собой более приятный процесс…
Автор статьи - Калашников [Silent] Игорь
Комментарии