Re: Use of hot keys
Hello! Sorry for troubling you again. May be you can explain more about
how
to create and add such plugins to Report Builder. We are not so
expierenced and never before have created such plugins.
Hi Martin,
You will need to create a custom preview plugin that exposes the OnKeyDown
event in order to accomplish this. Below is a snip of code and an article
on creating a preview plugin..
-----------------------------------------
Article: Creating a Preview Plugin
-----------------------------------------
Q: I've followed the tutorials and registered a Preview Form replacement but
that did not affect the TppDesigner's Preview workspace.
A: Do not use the form replacement, but rather, there is a different
architecture built into the preview form that is registered by default.
You will need to register a TppPreview descendent. The class you register
is used to create the preview controls inside the standard print preview
form and the designer preview workspace.
Here is an example of creating a simple custom preview that access the
viewer its been assigned in order to change the page color. You can also do
more advanced operations such as adding and removing buttons and change the
behavior of the preview form. Access the inherited controls via. protected
properties and override the virtual methods in order to customize behavior.
Open ppPreview.pas and view the TppPreview class as a guide to create a
custom preview descendent.
unit MyPreviewPlugin;
interface
uses
ppPreview;
type
TMyPreviewPlugin = class(TppPreview)
public
procedure BeforePreview; override;
end;
implementation
uses
Graphics;
procedure TMyPreviewPlugin.BeforePreview;
begin
inherited BeforePreview;
Viewer.PageColor := clRed;
end;
initialization
TppPreviewPlugIn.Register(TMyPreviewPlugin);
finalization
TppPreviewPlugIn.UnRegister(TMyPreviewPlugin);
end.
---------
HotKey example....
unit HotKeyPrintPlugin;
interface
uses
Classes, Windows,
ppPreview;
type
TmyHotKeyPrint = class(TppPreview)
public
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
end;
implementation
{ TmyHotKeyPrint }
procedure TmyHotKeyPrint.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
if (Shift = []) and (Key = VK_F8) then
Print;
end;
initialization
TppPreviewPlugIn.Register(TmyHotKeyPrint);
finalization
TppPreviewPlugIn.UnRegister(TmyHotKeyPrint);
end.
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
how
to create and add such plugins to Report Builder. We are not so
expierenced and never before have created such plugins.
Hi Martin,
You will need to create a custom preview plugin that exposes the OnKeyDown
event in order to accomplish this. Below is a snip of code and an article
on creating a preview plugin..
-----------------------------------------
Article: Creating a Preview Plugin
-----------------------------------------
Q: I've followed the tutorials and registered a Preview Form replacement but
that did not affect the TppDesigner's Preview workspace.
A: Do not use the form replacement, but rather, there is a different
architecture built into the preview form that is registered by default.
You will need to register a TppPreview descendent. The class you register
is used to create the preview controls inside the standard print preview
form and the designer preview workspace.
Here is an example of creating a simple custom preview that access the
viewer its been assigned in order to change the page color. You can also do
more advanced operations such as adding and removing buttons and change the
behavior of the preview form. Access the inherited controls via. protected
properties and override the virtual methods in order to customize behavior.
Open ppPreview.pas and view the TppPreview class as a guide to create a
custom preview descendent.
unit MyPreviewPlugin;
interface
uses
ppPreview;
type
TMyPreviewPlugin = class(TppPreview)
public
procedure BeforePreview; override;
end;
implementation
uses
Graphics;
procedure TMyPreviewPlugin.BeforePreview;
begin
inherited BeforePreview;
Viewer.PageColor := clRed;
end;
initialization
TppPreviewPlugIn.Register(TMyPreviewPlugin);
finalization
TppPreviewPlugIn.UnRegister(TMyPreviewPlugin);
end.
---------
HotKey example....
unit HotKeyPrintPlugin;
interface
uses
Classes, Windows,
ppPreview;
type
TmyHotKeyPrint = class(TppPreview)
public
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
end;
implementation
{ TmyHotKeyPrint }
procedure TmyHotKeyPrint.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
if (Shift = []) and (Key = VK_F8) then
Print;
end;
initialization
TppPreviewPlugIn.Register(TmyHotKeyPrint);
finalization
TppPreviewPlugIn.UnRegister(TmyHotKeyPrint);
end.
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
This discussion has been closed.
Comments
Below is the code for the entire preview plugin that adds the Shift + F8
combination to the preview window. This is very similar to what you will
need to do.
unit HotKeyPrintPlugin;
interface
uses
Classes, Windows,
ppPreview;
type
TmyHotKeyPrint = class(TppPreview)
public
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
end;
implementation
{ TmyHotKeyPrint }
procedure TmyHotKeyPrint.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
if (Shift = []) and (Key = VK_F8) then
Print;
end;
initialization
TppPreviewPlugIn.Register(TmyHotKeyPrint);
finalization
TppPreviewPlugIn.UnRegister(TmyHotKeyPrint);
end.
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com