![]() |
Mit F1 PDF-Datei aufrufen
Hallo allerseits,
ich habe zu meiner Anwendung eine Hilfe im PDF-Format erstellt und möchte, dass der Anwender diese Datei mit F1 aufrufen kann. Dazu habe ich in der FormKeyDown folgende Zeile eingefügt:
Delphi-Quellcode:
was vom Prinzip her auch einwandfrei funktioniert.
if key = VK_F1 then ShellExecute(Application.handle, 'open', PChar('hilfe.pdf'), nil, nil, sw_ShowNormal);
Leider wird zusätzlich folgende Meldung ausgegeben: Windows-Hilfe Zitat:
mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
HI,
1. versuch mal KeyPreview anzuschalten, 2. hast du die Datei als Hilfedatei eingetragen? Falls ja, austragen. Dann dürfte auch die Fehlermeldung nicht mehr kommen. Bernhard |
Re: Mit F1 PDF-Datei aufrufen
Vielleicht solltest Du zusätzlich aus dem relativen Pfad einen absoluten machen.
![]() ![]() |
Re: Mit F1 PDF-Datei aufrufen
Vielen Dank, das war es. Ich hatte die Datei als Hilfedatei eingetragen.
Jetzt funktioniert es prima. mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
Trotzdem würde ich Dir zu einem absoluten Pfad raten, da Du nie weißt, welches gerade das Arbeitsverzeichnis ist. Falls es nicht das Anwendungsverzeichnis ist, schlägt Dein Aufruf fehl.
|
Re: Mit F1 PDF-Datei aufrufen
Zitat:
ich sehe noch ein Problem. Du setzt einfach voraus das auf dem Computer ein Programm installiert ist mit dem PDFs angezeigt werden können. Wenn dem nicht so ist kann der Anwender die Hilfe nicht starten. Ist also keine so schöne Lösung. |
Re: Mit F1 PDF-Datei aufrufen
Hallo Sharky,
ich könnte auch chm-Dateien erzeugen. Braucht der Anwender hiefür Zusatzprogramme zum Öffnen bzw. ist das in Windows alles inkludiert? mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
Zitat:
|
Re: Mit F1 PDF-Datei aufrufen
Hallo zusammen,
müsste man diesen Hotkey nicht regitrieren? Was passiert ansonsten, wenn nicht die Form sondern z.B. ein Edit den Focus hat? |
Re: Mit F1 PDF-Datei aufrufen
Hierfür habe ich KeyPreview auf TRUE gestellt, das dürfte genügen.
mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
Zitat:
Die Fehlermeldung kommt wahrscheinlich daher, dass die VCL versucht die PDF-Datei als Hilfe-Datei zu laden. Und da PDF <> HLP gibt es die Fehlermeldung obwohl mit dem ShellExecute die PDF-Datei wahrscheinlich angezeigt wird. Besser ist es, das Event Application.OnHelp zu benützen.
Delphi-Quellcode:
// ungetestet
function TForm1.HelpHandler(Command: Word; Data: Longint; var CallHelp: Boolean): Boolean; begin Result := ShellExecute(Application.handle, 'open', PChar(Application.HelpFile), nil, nil, sw_ShowNormal) < 32; CallHelp := False; // VCL sagen, dass Aufruf der Hilfedatei nicht mehr nötig ist end; procedure TForm1.FormCreate(..); begin Application.OnHelp := HelpHandler; // Hilfe umbiegen end; |
Re: Mit F1 PDF-Datei aufrufen
Zitat:
|
Re: Mit F1 PDF-Datei aufrufen
So, ich habe das jetzt mit dem HelpHandler eingebaut, funktioniert ausgezeichnet - ist sicher eine sehr saubere Lösung.
Vielen Dank nochmals an alle. mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
Hallo hsbc,
also ich bin wohl zu blöd dafür... :oops: Wie hast du die Funktion bei dir verwendet? |
Re: Mit F1 PDF-Datei aufrufen
Hallo juergen,
was klappt denn bei Dir nicht? Hast Du die Komponente "TApplicationEvents" auf der Form und dort das Ereignis OnHelp zugewiesen und mit dem Code von sx bestückt? |
Re: Mit F1 PDF-Datei aufrufen
Hallo Manuel,
danke! Die erste Hürde ist überwunden. Ich hatte das ApplicationEvent nicht auf die Form... :oops: (hatte ich bis jetzt noch nie benutzt, bzw. auch gar nicht gewußt das es sowas gibt) Ich weiß weiterhin leider nicht wo und wie ich die Funktion einsetzen/aufrufen soll. (ich will jetzt nicht rumjammern, aber mein Hilfe unter VISTA 64 funktioniert auch nicht. Für mich als Anfänger ziemlich blöd. Werde aber in den nächsten 2 Wochen wieder auf 32 Bit umsteigen/ neu installieren...) |
Re: Mit F1 PDF-Datei aufrufen
Hi Jürgen,
das dürfte sowieso keine Funktion sein, da es ja ein Event ist, dass dieser Komponente zugewiesen wird. Als erstes klickst Du bei der ApplicationEvent-Komponente im OI auf Ereignisse und dann Doppelklick auf "OnHelp". Dann kommt der Code hier rein:
Delphi-Quellcode:
Das war es dann schon.
Result := ShellExecute(Application.handle, 'open', PChar(Application.HelpFile), nil, nil, sw_ShowNormal) < 32;
CallHelp := False; // VCL sagen, dass Aufruf der Hilfedatei nicht mehr nötig ist [edit] Das mit dem, dass es keine Funktion sein dürfte, nehme ich zurück. Es kann auch eine Funktion sein *g* [/edit] [edit3] Übrigens, hast Du unter Projekt -> Optionen -> Anwendung eine Hilfe-Datei hinterlegt? [/edit] |
Re: Mit F1 PDF-Datei aufrufen
Hallo Manuel,
manchmal ist es schon fast peinlich, aber damit hatte ich noch nie zu tun gehabt. Vielen Dank, auch für Edit3! :zwinker: :thumb: *So, und jetzt werden wir Europameister* :mrgreen: Europameisterliche Grüße Jürgen |
Re: Mit F1 PDF-Datei aufrufen
Kein Problem :zwinker:
Falls es nicht ganz rund läuft, einfach F1 drücken, dann kommt Hilfe :mrgreen: |
Re: Mit F1 PDF-Datei aufrufen
Zitat:
[Off-Topic]...schland [/Off-Topic] |
Re: Mit F1 PDF-Datei aufrufen
Hallo Jürgen,
ich habe nur im Programm (vor Application.Run) eingetragen: Application.HelpFile := 'Hilfe.chm'; Ansonsten nur, wie sx2008 beschrieben. mfg Herbert |
Re: Mit F1 PDF-Datei aufrufen
Zitat:
Zitat:
|
Re: Mit F1 PDF-Datei aufrufen
[OT]
Zitat:
|
Re: Mit F1 PDF-Datei aufrufen
[OT]
Zitat:
[/OT] |
AW: Mit F1 PDF-Datei aufrufen
Kann es sein, dass der Code von sx2008 nicht unter Windows 7 / 64 Bit funktioniert?
Habe alles so gemacht wie beschrieben. ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz