Как переопределить обработчик кнопки в стандартном окне предварительного просмотра?

Question: Как переопределить обработчик кнопки в стандартном окне предварительного просмотра?

Answer:

Следующий обработчик переопределяет обработчик кнопки "Открыть" 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses frxClass, frxPreview, frxPreviewPages, frxRes; 
type TForm1 = class(TForm) frxReport1: TfrxReport; 
procedure frxReport1Preview(Sender: TObject); 
procedure NewOnClick(Sender: TObject); 
end; 
var Form1: TForm1; 
implementation {$R *.dfm} 
procedure TForm1.frxReport1Preview(Sender: TObject); 
begin 
if frxReport1.PreviewForm is TfrxPreviewForm then 
begin 
TfrxPreviewForm(frxReport1.PreviewForm).OpenB.OnClick := NewOnClick; 
TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[3].OnClick := NewOnClick; 
end; 
end;
procedure TForm1.NewOnClick(Sender: TObject); 
var OpenDlg: TOpenDialog; 
begin 
if frxReport1.Engine.Running then 
Exit; 
OpenDlg := TOpenDialog.Create(nil); 
try OpenDlg.Options := [ofHideReadOnly]; 
OpenDlg.Filter := frxResources.Get('clFP3files') + ' (*.fp3)|*.fp3'; if OpenDlg.Execute then 
begin TfrxPreview(frxReport1.Preview).LoadFromFile(OpenDlg.FileName); 
frxReport1.PreviewForm.Caption := OpenDlg.FileName; 
end; 
finally OpenDlg.Free; 
end; 
end; 
end.