EurekaLog dialog options
Note: error messages in dialogs are controlled by nested exceptions behaviour options.
1. "Ask user for send consent" (.edoShowSendErrorReportOption) option will ask user for their consent before sending bug report to developer - by showing "Send this error via Internet" checkbox.
This option has no effect if you haven't specified any sending methods. In this case you'll see only one "OK" button. For example:
Asking for consent is unchecked or there is no sending method available
Asking for consent is checked and sending method present
Important: be aware that sending user's data without a consent violates GDPR. Violators of GDPR may be fined up to €20 million, or up to 4% of the annual worldwide turnover of the preceding financial year, whichever is greater. We recommend to seek advice from GDPR consulting company before disabling consent. See also: Security Considerations.
2. A default choice (checked or cleared) is selected by enabling/disabling "Default choice: send report" (.edoSendErrorReportChecked) option. If this option is checked - the default choice is to send the report. If this option is unchecked - then the default choice is NOT to send the report. This affects the initial state of "Send this error via Internet" checkbox.
3. "Show 'Attach screenshot' option" (.edoShowAttachScreenshotOption) option will add the "Attach a screenshot image" checkbox to the dialog. This option has no effect if "Ask user for send consent" option is not checked, the sending method is not selected or getting screenshots is disabled from send options.
Show attach screenshot option is unchecked or other conditions aren't hold
Show attach screenshot option is checked and other conditions were completed
This checkbox controls whenever a screenshot in included into bug report for send or not.
4. A default state (checked or cleared) for "Attach a screenshot image" checkbox is selected via "Default choice: attach screenshot" (.edoAttachScreenshotChecked) option.
5. "Show 'Details' button" (.edoShowDetailsButton) option will show a "Details" button which switches dialog to detailed mode. If dialog is already in detailed mode, then this button will switch dialog back to non-detailed mode.
"Show 'Details' button" option is unchecked
"Show 'Details' button" option is checked
Detailed mode shows full bug report:
EurekaLog dialog in detailed mode with "Show 'Details' button" option unchecked
EurekaLog dialog in detailed mode with "Show 'Details' button" option checked
6. You can control whenever dialog is initially showed in standard or detailed mode by switching "Default: detailed mode" (.ExceptionDialogType = edtEurekaLogDetailed) option.
7. "Ask for steps to reproduce" (.loAppendReproduceText) option will ask user for additional description of the problem in a separate window:
Standalone window asking for "step to reproduce"
This window appears after closing of EurekaLog error dialog. After user clicks on OK button, EurekaLog will perform usual processing (saving and sending), which depends on options selected in original EurekaLog style dialog.
8. "Ask for steps only when sending" (.loAppendReproduceTextOnlyWhenSending) option changes behaviour or "Ask for steps to reproduce" option. It has no effect if "Ask for steps to reproduce" option is unchecked. If "Ask for steps to reproduce" option is checked, then you can disable showing "steps to reproduce" window when "Send report via Internet" checkbox is unchecked at run-time - by checking "Ask for steps only when sending" option. In other words, "Ask for steps only when sending" option is unchecked: ask always. "Ask for steps only when sending" option is checked: ask only when "Send report via Internet" is checked too.
9. "Require e-mail for sending" (.edoShowEMailControl, .edoMandatoryEMail, .edoMandatoryEMailOnlyWhenSending) option will additionally ask user's e-mail before sending the bug report. This option have no effect if sending is disabled or if a user has selected NOT to send a bug report.
Standalone window asking for user's e-mail
Same window if both "Require e-mail for sending" and "Ask user for steps to reproduce" options are enabled
Entering e-mail is mandatory. This dialog will not appear if e-mail was already specified earlier - for example, in previous error dialog, or e-mail was entered in another EurekaLog-enabled application or even another instance of the same application (EurekaLog saves user's e-mail in registry, you can work with it via GetUserEMail and SetUserEmail functions).
10. "Show a custom 'Help' button" (.edoShowCustomButton) option shows a "Help" button in the left-bottom corner of the dialog. You can assign your code on this button via the OnCustomButtonClick event.
"Show a custom 'Help' button" option is unchecked
"Show a custom 'Help' button" option is checked
Note: while the proposed usage for this button is to act as "Help on this error" button, but you can freely implement any other behavior. You can implement arbitrary behavior by assigning OnCustomButtonClick event, and you can change caption of this button by either altering localization options at design-time or assigning a new value to CurrentEurekaLogOptions.CustomizedTexts[mtDialog_CustomButtonCaption].
11. "Modal window" (.edoShowModal) option makes error dialog modal. Modal means that only error dialog will be accessible. All other windows in current thread will be disabled (user will not be able to interact with them). Windows from other processes and from other threads within the same process will be accessible. When this option is unchecked - no other windows will be disabled.
Note: usually it's not good idea to uncheck "Owner window" option when "Modal window" option is checked.
12. "Owner window" (.edoOwnedWindow) option makes error dialog an owned window to currently active window (owner window). Here: Owner-Owned relation is used in system's meaning (as relation between two HWND) as opposed to Delphi's meaning (as relation between two TComponent).
Checked: error dialog will be displayed as owned window to currently active window. If there is no active window - this option will have no effect. Being owned places several constraints on a window. Generally, owner-owned windows act as group. For example, an owned window is always above its owner in the z-order. Both owner and owned windows "share" the same button on taskbar (actually, owned window do not have taskbar button). An owned window is hidden when its owner is minimized.
Unchecked: error dialog will not be related to any other window. It will be standalone window.
Note: usually it's not good idea to uncheck "Owner window" option when "Modal window" option is checked.
13. "Right-To-Left" option enables Right-To-Left layout. This is global option that affects all EurekaLog run-time dialogs. Unchecked position indicate left-to-right layout (default), checked position indicate right-to-left layout used in some middle eastern languages. This option can also be altered at design-time via Localization page. This option can also be altered at run-time by changing CurrentEurekaLogOptions.CustomizedTexts[mtRTLDialog].
14. "Show dialog in Top-Most state" (.edoShowInTopMostMode) option sets the HWND_TOPMOST position to error dialog. If this option is checked then error window will appear above all other non-TopMost windows. If this option is unchecked then HWND_TOPMOST will not be set. Instead, a timer is run. This timer will call SetForegroundWindow for error dialog, if it was covered by any other process's windows. Windows from other processes can cover error window. Windows from current process, which are created after error dialog can cover error dialog too. This timer doesn't work in TopMost mode.
15. "Use EurekaLog 'look and feel'" (.edoUseEurekaLogLookAndFeel) option allows you to change visual dialog style like this:
"Use EurekaLog 'look and feel'" option is unchecked
"Use EurekaLog 'look and feel'" option is checked
This allows you to visually get attention to your error dialogs. This modification works for detailed mode too:
Both "Use EurekaLog 'look and feel'" and "Default: detailed mode" options are checked
16. "Show 'Copy to clipboard' option" (.edoShowCopyToClipOption) option shows a "Copy to clipboard" checkbox.
"Show 'Copy to clipboard' button" option is unchecked
"Show 'Copy to clipboard' button" option is checked
At run-time: user can check "Copy to clipboard" checkbox to get full bug report to be copied into clipboard, so he can insert it into a e-mail or a text file manually.
A Windows Notepad with bug report, inserted from clipboard
17. "Auto-size columns" (.edoAutoSize) option will automatically resize columns to fit column's content. User still be able to resize column manually. If this option is disabled - columns will not be resized, columns will keep previously saved widths.
18. "Replace 'Application' with real application name" (.edoUseRealName) option will replace "application" word in all messages on the error dialog with FileDescripton field from version information of main executable (not from module where exception has occurred) - so called "real application name" (in this article). The usual places for such replacements include:
If there is no version information available or FileDescription field is empty - then this option will have no effect and you'll see the standard "application" instead of description.
In the example below: the FileDescription field of main .exe contains 'Sample Application' string.
"Replace 'application' with real application name" option is unchecked
"Replace 'application' with real application name" option is checked
Usually this option is used together with "Replace error icon with real application icon" option (see below) to get a fully personalized view.
19. "Replace error icon with real application icon" (.edoUseRealIcon) option will replace standard IDI_ERROR icon to icon of the main .exe (i.e. the first icon). For example:
"Replace error icon with real application icon" option is unchecked
"Replace error icon with real application icon" option is checked
Usually this option is used together with "Replace 'application' with real application name" option (see above) to get a fully personalized view.
20. "Do nothing" / "Show 'Restart' checkbox" / "Show 'Terminate' checkbox" after N errors (.TerminateBtnOperation, .ErrorsNumberToShowTerminateBtn, .edoRestartChecked) options controls the visibility of "restart" and "terminate" checkboxes:
"Do nothing" option is selected or error count is less than the specified count.
"Show 'Terminate' checkbox" options is selected and error count is more than the specified count.
The "Checked" option controls if this checkbox is initially checked or unchecked. If "Checked" option is checked, then when EurekaLog dialog appears with restart/terminate button visible - this button will be default. And the opposite: if the "Checked" option is not checked, then a default button will be OK button, when dialog appears. Of course, this option have no effect, if button is not visible (for example, if you select "Do nothing" option).
A "after N errors" part is controls, when to show restart/terminate checkbox. Again, this part is ignored, if you select "Do nothing" option. Value of 0 means that restart/terminate button will be visible always. Value of 1 means that button will be displayed only in second error dialog. Value of 2 means that you got two error dialog without button and 3rd dialog will have it. And so on.
At run-time: when user clicks restart/terminate button, then your application will be restarted or terminated after closing error dialog and saving and sending bug report (if enabled). If user clicks OK button - then your application will continue to run.
21. "Close every exception dialog after M seconds" (.AutoCloseDialogSecs) option allows you to automatically close exception dialogs after timeout of inactivity. Value of 0 means disabling of such feature - i.e. each dialog may be closed only manually by user (via clicking on dialog's buttons). Any other value (> 0) means that dialog will be closed after that amount of seconds, passed since its popup. For example, if you specify 180 seconds - then dialog will be closed exactly after 3 minutes, if user didn't closed it before.
This option is useful to auto-close error dialogs in possible non-interactive scenarios. Note, that it may be preferable to select other dialog type (non-GUI) in such cases.
Note: this option specifies the delay of user's inactivity. If user moves mouse, presses buttons or generates any other input in dialog - auto-close timer will reset. Therefore, setting this option to, say, 5 seconds does not mean that dialog will be closed after 5 seconds. It may stay for, say, 1 minute - but only if user is working with it. Dialog will be closed after 5 seconds if user is away (not moving mouse, etc.).
22. "Foreground tab" (.ForegroundTab) specifies the default active tab in detailed view when dialog is showed. For example:
Foreground tab is set to "Call-stack"
Foreground tab is set to "General"
This option has no effect if detailed mode is never shown.
23. "Support URL" (.SupportURL) option allows you to specify an URL, which will be shown in error dialog as hyper-link. Empty value means "do not show hyper-link". For example:
"Support URL" option is empty
"Support URL" option is set to http://www.example.com/
At run-time: user can click on that hyper-link and EurekaLog will open a default browser with specified URL. Dialog itself will not be closed.
Note: support URL may include any variable. For example, you may specify the following URL: "https://bugs.example.com/view.php?find=%_BugID%" (without quotes). When user click on support URL, EurekaLog will open the following URL in user's default browser: https://bugs.example.com/view.php?find=CFAC0000 (where "CFAC0000" - is just an example of Bug ID; it will be different in your case). This allows you to dynamically customize support page.