Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // EurekaLog offers you feature to use generic error icon or icon of your application for error dialogs.
- // However, you may want to use some other icon for that.
- // There is no such feature in EurekaLog, but you can easily fix that with such code - see below.
- // Obviously, this code replaces icon for one particular dialog type (MS Classic style).
- // If you want to alter icon for several classes (such as EurekaLog-style dialog),
- // then you have to write more your own child classes.
- unit Unit1;
- interface
- // ...
- implementation
- uses
- EBase, ECore, EModules, EListView, EDialog, EDialogWinAPIMSClassic;
- {$R *.dfm}
- // To test our customization code
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- raise Exception.Create('Error Message');
- end;
- type
- // Our child class - inheriting from standard TMSClassicDialog
- TMSClassicDialogCustom = class(TMSClassicDialog)
- private
- FCustomIcon: HBITMAP; // our new icon
- protected
- // Init/done:
- procedure WindowInit; override;
- procedure WindowDone; override;
- // Replacing icon drawing:
- function Paint(const ADC: HDC; const ARect: TRect): Integer; override;
- end;
- { TMSClassicDialogCustom }
- procedure TMSClassicDialogCustom.WindowInit;
- var
- Ico: HIcon;
- begin
- inherited;
- Ico := LoadIcon(HInstance, 'CUSTOMICON');
- FCustomIcon := IcoToBmp(Ico, GetStockObject(WHITE_BRUSH), 32, 32);
- end;
- function TMSClassicDialogCustom.Paint(const ADC: HDC; const ARect: TRect): Integer;
- begin
- Result := inherited;
- DrawBmp(ADC, FCustomIcon, MonitorLeft, MonitorTop, 32, 32);
- end;
- procedure TMSClassicDialogCustom.WindowDone;
- begin
- DeleteObject(FCustomIcon);
- inherited;
- end;
- initialization
- if IsEurekaLogInstalled then
- begin
- // You have to register dialog before using it:
- RegisterDialogClass(TMSClassicDialogCustom);
- // Once registered - now you can use it in options:
- CurrentEurekaLogOptions.ExceptionDialogType := TMSClassicDialogCustom.ClassName;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement