AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abbrevia und AtViewer wollen nicht mit TMemoryStream

Ein Thema von Alter Mann · begonnen am 29. Jun 2013 · letzter Beitrag vom 30. Jun 2013
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 29. Jun 2013, 18:37
Hallo Gemeinde,

ich habe mal wieder so ein dummes Problem.

Ich möchte den Inhalt im ATViewer anzeigen.
Nutze ich dazu ein MemoryStream bleibt zeigt der ATViewer nix an(Fenster wird Dunkelgrau):
Delphi-Quellcode:
procedure TMailForm.ShowMemFile(ArchivName : String);
var
  MS : TMemoryStream;
  UZ : TAbUnZipper;
begin
  MS := TMemoryStream.Create;
  try
      UZ := TAbUnZipper.Create(Self);
      try
        UZ.Stream := Stream;
        UZ.ExtractToStream(ConfirmFileName(ArchivName), MS);
        MS.Position := 0;
        ShowContent(MS, vmodeMedia); // <-- Problem?
      finally
        UZ.Free;
      end;
  finally
    MS.Free;
  end;
end;
Delphi-Quellcode:
procedure TMailForm.ShowContent(aStream : TStream; AMode: TATViewerMode);
begin
  ATViewer.OpenStream(aStream, aMode);
end;
Nutze ich dagegen den FileStream, futz es:
Delphi-Quellcode:
procedure TMailForm.ShowFileText(aText : String);
var
  FS : TFileStream;
  FN : String;
begin
  FN := GetTempFileName('temp.html');
  FS := TFileStream.Create(FN, fmCreate, fmShareDenyWrite);
  try
    FS.Write(Pointer(aText)^, Length(aText));
    FS.Position := 0;
  finally
    FS.Free;
  end;
  ATViewer.Open(FN);
end;
Meine Vermutung, es hängt mit AMode: TATViewerMode zusammen.

Hat jemand einen kleinen Hinweis?

Ach so, den Typ(?) der Datei kenne ich, in Form von:
Code:
application/pdf
.

Ich Danke Euch und wünsche ein friedsammes Wochenende
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 29. Jun 2013, 19:02
Könnte auch daran liegen, dass der PDF Reader, welcher ja letzt endlich dein Dokument anzeigen soll, den Stream nicht frisst. Warum entpackst du nicht einfach das Dokument temporär, zeigst es an und löscht es dann wieder. Das funzt auf jeden Fall.
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 29. Jun 2013, 21:11
Ich sehe beim ATViewer keinerlei Hinweis, dass er PDFs unterstützt.

Bei vmodeMedia werden intern nur Bild- und Multimediadateierweiterungen aus Open dafür benutzt, wenn dort die Dateierweiterungen analysiert werden. Die Beschreibung in der Hilfe:
Zitat:
Multimedia: all file types supported by MS Windows Media Player: AVI MPEG WMV MP3...
File is shown using WMP ActiveX control.
Wieso sollte der Windows Media Player PDFs darstellen können?!

Am nächsten kommt noch Internet oder Plugins als Typ... evtl. geht das damit...
Zitat:
Internet: all file types supported by MS Internet Explorer: HTML XML DOC XLS...
File is shown using MSIE ActiveX control

Plugins: all files supported by Total Commander Lister plugins.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 30. Jun 2013, 00:24
Ich sehe beim ATViewer keinerlei Hinweis, dass er PDFs unterstützt
Doch das tut er, wenn der Adobe Reader installiert ist.
Gruß
Cookie

Geändert von cookie22 (30. Jun 2013 um 08:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 30. Jun 2013, 09:27
Aber wohl kaum mit dem Windows Media Player Control, das hier ja als Typ angegeben wurde... Ich habe ja geschrieben, wenn, dann vermute ich mal, dass das über die beiden anderen Typen geht. Der Weg über das Internet Explorer Control ist ja allgemein bekannt für PDFs.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 30. Jun 2013, 10:32
Hab länger nicht damit gearbeitet, aber soweit ich mich erinnere ist vmodeMedia richtig. Damit öffnet man auch Word oder Open Office Dokumente, das bezieht sich nicht nur auf den Media Player.
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 30. Jun 2013, 12:29
Ich habe es gerade selbst ausprobiert.

Wenn man Open mit einer PDF Datei aufruft, wird der Typ als vmodeWeb erkannt und ein TWebBrowser wird benutzt um diese Datei per Navigate aufzurufen. Ganz wie ich es vermutet hatte.

Dass das nicht mit einem Stream geht, ist klar.

Benutzt man OpenStream wird wie man mit einem Blick in den Quelltext sieht nur ein Event wie OnLoadWebStream für Typ Web oder OnLoadImageStream für Typ Media aufgerufen, in dem man selbst den Streaminhalt in den Viewer bringen soll...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Abbrevia und AtViewer wollen nicht mit TMemoryStream

  Alt 30. Jun 2013, 21:38
Sorry, dann hab ich mich vertan.
Gruß
Cookie
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz