Ik gebruik onderstaande code om een TAcroPDF te creëren en een PDF in te laten. Dat gaat allemaal goed. Maar als ik het form afsluit krijg ik een access violation. Deze krijg ik alleen als er ook daadwerkelijk een PDF is geladen. Als dat niet het geval is gebeurt dit niet. Ik heb de OnFormDestory vervangen door de button2click. Wat doe ik niet goed?
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, AcroPDFLib_TLB;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
APDF: TAcroPDF;
procedure LoadPDF;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
inherited;
APDF := TAcroPDF.Create(self);
APDF.Parent := Panel1;
APDF.Align := alClient;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadPDF;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
APDF.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
inherited;
APDF := TAcroPDF.Create(self);
APDF.Parent := Panel1;
APDF.Align := alClient;
end;
procedure TForm1.LoadPDF;
begin
APDF.LoadFile('H:\rapport.pdf');
end;
end.
Bookmarks