Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi PDF aus Delphi heraus öffnen (https://www.delphipraxis.net/59655-pdf-aus-delphi-heraus-oeffnen.html)

mschaefer 27. Dez 2005 10:25

Re: PDF aus Delphi heraus öffnen
 
Wahrscheinlich gibt es mehrere Möglichkeiten pdf-Files zuzuordnen. Bringt aber nichts auf dem Shellexecute zu bestehen. Dann bleibt das ActiveX. Bei VB gab es auch die Möglichkeit die ActiveX im Programmverzeichnis zu halten. Dann brauchte man d nichts zu installieren. Dann hättest Du alle Komponenten selbst zur Verfügung.

Grüße // Martin

Matze 27. Dez 2005 10:30

Re: PDF aus Delphi heraus öffnen
 
Oje danke, also ActiveX hatte ich auch nicht vor einzubinden vor allem nur wegen einer Verknüpfung zu einer Datei. :(

Flocke 27. Dez 2005 11:12

Re: PDF aus Delphi heraus öffnen
 
Wie sieht's denn in deiner Registry unter "HKEY_CLASSES_ROOT\pdf_auto_file\shell\Open" aus?

Matze 27. Dez 2005 11:30

Re: PDF aus Delphi heraus öffnen
 
:hi: Flocke

Es hat sich soeben gelöst, nach ewigem Suchen bin ich auf folgende Prozedur gestoßen.
Gefunden habe ich sie sogar bei uns, nur bis man da mal die richtigen Suchbegriffe findet (executefile war's).

Delphi-Quellcode:
uses
  ShellAPI;

   [...]

procedure ExecuteProgramm(const PFileName: string);
var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
  ExecuteFile: string;
begin
  ExecuteFile:=PFileName;
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);

  with SEInfo do
  begin
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Application.Handle;
    lpFile := PChar(ExecuteFile);
    nShow := SW_SHOWNORMAL;
  end;

  if ShellExecuteEx(@SEInfo) then
  begin
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(SEInfo.hProcess, ExitCode);
    until (ExitCode <> STILL_ACTIVE) or
      Application.Terminated;
  end else
  begin
    Application.MessageBox('Fehler beim Starten des Programms',
      'Programm Starten', mb_OK+mb_IconError);
  end;
end;
Und mit dieser geht's. :hello:
Danke für eure Hilfe. :)

mschaefer 27. Dez 2005 12:29

Re: PDF aus Delphi heraus öffnen
 
KLASSE ! Gut gemacht Matze!

Die Idee das als Dokumentation und eventuell Hilfeersatz zu nehmen ist ehedem prima. Na vielleicht kann man dem Windows-Handle auch noch die Tastendrücke zum gewünschten Suchbegriff oder zur Zielseite mitgeben. Und dann noch bei uns in der DP gefunden !

Find ich gut :P und viele Grüße // Martin

eF-eS 6. Jan 2006 19:27

Re: PDF aus Delphi heraus öffnen
 
Zitat:

Zitat von mschaefer
PS: Du kanst natürlich PDF auch im TWebBrowser öffnen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate('c:\..\MyPDFFile.pdf');
end;

Die Lösung ist geil ... hatte gerade dasselbe Problem.

Prima!

Danke

eF-eS 6. Jan 2006 20:17

Re: PDF aus Delphi heraus öffnen
 
Zitat:

Zitat von eF-eS
Zitat:

Zitat von mschaefer
PS: Du kanst natürlich PDF auch im TWebBrowser öffnen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate('c:\..\MyPDFFile.pdf');
end;

Die Lösung ist geil ... hatte gerade dasselbe Problem.

Prima!

Danke

Sorry, aber jetzt werde ich offtopic ... ich kann dieses Posting allerdings nicht verschieben ...

Ich habe mein Prog in irgendeinem Verzeichnis liegen c:\...\Prog die pdfs, die ich anzeigen möchte, liegen in einem Verzeichnis darunter, also c:\...\Prog\doku Bei der oben vorgestellten Lösung wird doch eine absolute Adresse verlangt. Wie kann ich erreichen, dass die pdf-Dateien in egal-welchem-Verzeichnis gefunden werden, also meinetwegen sowohl auf e:\meineProg\Prog\Doku als auch auf "d:\prog\Doku"?

Ich habe in Erinnerung, dass es irgendwelche Parameter gibt. ApplicationPath oder so. Aber: wie heißen die genau, und wie setze ich sie ein?

Matze 6. Jan 2006 20:46

Re: PDF aus Delphi heraus öffnen
 
Das übergeordnete Verzeichnis kannst du so ermitteln:

Delphi-Quellcode:
Pfad := ExtractFilePath(ExcludeTrailingPathDelimiter(Pfad));
Ob das die sauberste Lösung ist, kann ich dir nicht sagen.

Den Pfad zu deiner Anwendung erhälst du so:

Delphi-Quellcode:
ExtractFilePath(ParamStr(0))
Aber zukünftig bitte die Suche benutzen oder einen neuen Thread erstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.
Seite 4 von 4   « Erste     234   

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