// See also: http://pastebin.com/3irtZ3iU - "how to save/capture ZIP/ELP file"
// See also: http://pastebin.com/kkb5xkST - "'Save' report instead of sending"
uses
ETypes, EDialog, EDialogWinAPIMSClassic, EModules;
type
// Subclass standard dialog class to alter EurekaLog behaviour.
// Of course, you should replace TMSClassicDialog with another appropriate class if you don't use MS classic dialog style
TMyMSClassicDialog = class(TMSClassicDialog)
protected
function ShowModalInternal: TResponse; override;
end;
{ TMyMSClassicDialog }
function TMyMSClassicDialog.ShowModalInternal: TResponse;
var
X: Integer;
begin
Result := inherited;
// This happens when user clicks on "Details" link - one dialog has to be replaced with another
if Result.SendResult = srRestart then
Exit;
// Create files to be send even if no send is used
if (Failed(Ord(Result.SendResult))) or
(not CanSend) then
begin
PrepareFilesForSend;
// Copy all files attachments to some folder.
// Of course, folder must exist and be writable.
// Usually there is only one file (.elp), but it can be few files - depends on your project options
for X := 0 to FilesToSend.Count - 1 do
CopyFile(PChar(FilesToSend[X]), PChar('C:\Users\UserName\Documents\BugReports\' + ExtractFileName(FilesToSend[X])), False);
end;
end;
initialization
// Register our class to be used by EurekaLog
RegisterDialogClass(TMyMSClassicDialog);
// Set our dialog
CurrentEurekaLogOptions.ExceptionDialogType := TMyMSClassicDialog.ClassName;
end.
Comments