Skip to content

Commit f4dc7ef

Browse files
author
azanelli
committed
Add function CloseDocument.
1 parent a9d523d commit f4dc7ef

5 files changed

+28
-1
lines changed

src/Execute.libPDFium.pas

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ TRectD = record
5858
IPDFium = interface
5959
function GetVersion: Integer; stdcall;
6060
function GetError: Integer; stdcall;
61+
function CloseDocument: integer; stdcall;
6162
function LoadFromFile(fileName, Password: PAnsiChar): Integer; stdcall;
6263
function LoadFromMemory(data: Pointer; Size: Integer; password: PAnsiChar): Integer; stdcall;
6364
function GetPermissions: LongWord; stdcall;

src/Main.dfm

+5
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,17 @@ object MainForm: TMainForm
215215
ShortCut = 16463
216216
OnClick = Open1Click
217217
end
218+
object Close1: TMenuItem
219+
Caption = 'Close'
220+
OnClick = Close1Click
221+
end
218222
object N1: TMenuItem
219223
Caption = '-'
220224
end
221225
object Quit1: TMenuItem
222226
Caption = '&Quit'
223227
ShortCut = 16465
228+
OnClick = Quit1Click
224229
end
225230
end
226231
end

src/Main.pas

+13
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ TMainForm = class(TForm)
5454
btFullPage: TPaintBox;
5555
btActualSize: TPaintBox;
5656
btAbout: TPaintBox;
57+
Close1: TMenuItem;
5758
procedure Open1Click(Sender: TObject);
5859
procedure FormCreate(Sender: TObject);
5960
procedure FormDestroy(Sender: TObject);
@@ -71,6 +72,8 @@ TMainForm = class(TForm)
7172
procedure PDFiumResize(Sender: TObject);
7273
procedure mnActualSizeClick(Sender: TObject);
7374
procedure btAboutClick(Sender: TObject);
75+
procedure Quit1Click(Sender: TObject);
76+
procedure Close1Click(Sender: TObject);
7477
private
7578
{ Déclarations privées }
7679
FButtons : TBitmap;
@@ -200,6 +203,11 @@ procedure TMainForm.ButtonMouseLeave(Sender: TObject);
200203
end;
201204
end;
202205

206+
procedure TMainForm.Close1Click(Sender: TObject);
207+
begin
208+
PDFium.CloseDocument;
209+
end;
210+
203211
procedure TMainForm.CreateButtons;
204212
begin
205213
FButtons.PixelFormat := pf32Bit;
@@ -302,4 +310,9 @@ procedure TMainForm.ppZoomPopup(Sender: TObject);
302310
mnFitWidth.Checked := PDFium.ZoomMode = zmPageWidth;
303311
end;
304312

313+
procedure TMainForm.Quit1Click(Sender: TObject);
314+
begin
315+
Close();
316+
end;
317+
305318
end.

src/PDFium.Frame.dfm

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ object PDFiumFrame: TPDFiumFrame
22
Left = 0
33
Top = 0
44
Width = 451
5-
Height = 305
5+
Height = 304
66
HorzScrollBar.Tracking = True
77
VertScrollBar.Increment = 27
88
VertScrollBar.Tracking = True

src/PDFium.Frame.pas

+8
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ TPDFPage = class
108108
constructor Create(AOwner: TComponent); override;
109109
destructor Destroy; override;
110110
procedure Invalidate; override;
111+
procedure CloseDocument();
111112
procedure LoadFromMemory(APointer: Pointer; ASize: Integer);
112113
procedure LoadFromStream(AStream: TStream);
113114
procedure LoadFromFile(const AFileName: string);
@@ -411,6 +412,13 @@ procedure TPDFiumFrame.ClearSelection;
411412
Invalidate;
412413
end;
413414

415+
procedure TPDFiumFrame.CloseDocument;
416+
begin
417+
ClearPages;
418+
FPDF.CloseDocument;
419+
SetPageCount(0);
420+
end;
421+
414422
function TPDFiumFrame.GetPage(PageIndex: Integer): TPDFPage;
415423
var
416424
Index: Integer;

0 commit comments

Comments
 (0)