Thread View: pl.comp.lang.delphi
2 messages
2 total messages
Started by Sivy
Tue, 31 May 2016 12:07
Delphi 2007 + AdobeReader DC ActiveX i AV przy zwalnianiu obiektu
Author: Sivy
Date: Tue, 31 May 2016 12:07
Date: Tue, 31 May 2016 12:07
98 lines
3168 bytes
3168 bytes
Witam
Mam problem z osadzonym AdobeReaderem (activeX) po przejściu na
najnowszą wersję (DC). Przy zwalnianiu obiektu wyrzuca AV. Jak na
komputerze jest zainstalowana poprzednia wersja Readera (11) to jest
wszystko w porządku.
Napisałem już nawet minimalny programik do testów i przy .Free otrzymuję AV.
Zauważyłem jedno, jeżeli nie załaduję pliku PDF do kontrolki to mogę
zwolnić obiekt bez żadnych problemów, ale jak był załadowany jakikolwiek
to wtedy otrzymuję AV.
Niby aby zamknąć otwarty dokument wystarczy do property SRC przypisać
pusty string, ale u mnie jak przypiszę '' to i tak jest dalej przypisany
wczytany dokument i nic się nie dzieje.
AcroPDFLib_TLB wygenerowany z ostatniej wersji Adobe Readera DC wersja
2015.016.20041
Poniżej wklejam kod minimalnego programu do testów.
1. bt_createClick()
2. bt_openClick()
3. bt_killClick() -> AV
Jak zamknąć otwarty dokument w tej kontrolce ? może to by załatwiło
sprawę ....
<code>
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, OleCtrls, AcroPDFLib_TLB, StdCtrls, ExtCtrls;
type
TForm11 = class(TForm)
Panel1: TPanel;
bt_open: TButton;
OpenDialog1: TOpenDialog;
bt_kill: TButton;
bt_create: TButton;
bt_open_nil: TButton;
procedure bt_openClick(Sender: TObject);
procedure bt_killClick(Sender: TObject);
procedure bt_createClick(Sender: TObject);
procedure bt_open_nilClick(Sender: TObject);
private
{ Private declarations }
public
AcroPDF1: TAcroPDF;
{ Public declarations }
end;
var
Form11: TForm11;
implementation
{$R *.dfm}
procedure TForm11.bt_openClick(Sender: TObject);
begin
with OpenDialog1 do
begin
Execute();
AcroPDF1.LoadFile(OpenDialog1.FileName);
end;
end;
procedure TForm11.bt_killClick(Sender: TObject);
begin
if AcroPDF1 <> nil then
AcroPDF1.Free;
end;
procedure TForm11.bt_createClick(Sender: TObject);
begin
AcroPDF1 := TAcroPDF.Create(nil);
AcroPDF1.Parent := Form11;
AcroPDF1.Align := alClient;
end;
procedure TForm11.bt_open_nilClick(Sender: TObject);
begin
AcroPDF1.src := '';
end;
end.
</code>
Pozdrawiam
Re: Delphi 2007 + AdobeReader DC ActiveX i AV przy zwalnianiu obiektu
Author: m
Date: Tue, 31 May 2016 16:16
Date: Tue, 31 May 2016 16:16
16 lines
1481 bytes
1481 bytes
> Niby aby zamknąć otwarty dokument wystarczy do property SRC przypisać > pusty string, ale u mnie jak przypiszę '' to i tak jest dalej przypisany > wczytany dokument i nic się nie dzieje. > Eksperymentalnie sprawdziłem twój kod i też mam AV przy zamykaniu Zobacz krok po kroku co sie dzieje jak przypisujesz "SRC := ''" U mnie tam jest pusta metoda. A dla starej wersji to działało ? Jak to wygladało kiedyś ? Przykłady z Adobe Acrobat SDK nie mają AV przy zamykaniu ale tylko raz udało mi się wczytać PDF-a może o ActiveX już warto zapomnieć ? M
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads