Seite 1 von 2
Hilfe in Programm-Datei einbinden
Verfasst: 30.07.2012 12:50
von TKRoth
Hallöchen mal wieder
Ich bin ein Fan von 'all in one' Programmen. Also alle nötigen Dateien sind in der Programmdatei enthalten. Bei Grafiken, Sounds etc. ist dies ja leicht möglich. CatchImage() etc. Ich würde aber auch gerne die Hilfe-Datei einbinden. Leider hat PB nicht so etwas in der Form wie:
Code: Alles auswählen
CatchHelpFile(#HelpID,?HelpFile)
...
...
OpenHelpTopic(#HelpID,"Index.html")
...
...
HelpFile: IncludeBinary "HelpFile.chm"
Gibt es dennoch eine Möglichkeit?
Re: Hilfe in Programm-Datei einbinden
Verfasst: 30.07.2012 13:03
von RSBasic
@TKRoth
Ich würde einfach mal vorschlagen, die includierte CHM-Datei beim Starten im Temp-Ordner zu extrahieren und anschließend diese mit OpenHelp() zu öffnen.
Re: Hilfe in Programm-Datei einbinden
Verfasst: 30.07.2012 13:11
von TKRoth
Das wäre zumindest eine Alternative, falls es nicht direkt in der Programmdatei gehen sollte. Vielleicht weiß ja jemand dennoch noch eine andere Lösung. Danke auf jeden Fall für den Tipp.
PS: Wäre evtl. noch eine Idee an die Entwickler meine oben genannten Funktionen in zukünftiger Version einzubauen

Re: Hilfe in Programm-Datei einbinden
Verfasst: 30.07.2012 14:48
von RSBasic
TKRoth hat geschrieben:PS: Wäre evtl. noch eine Idee an die Entwickler meine oben genannten Funktionen in zukünftiger Version einzubauen

Am besten registrierst du dich
im englischen Forum und erstellst
dort einen Thread.
Re: Hilfe in Programm-Datei einbinden
Verfasst: 31.07.2012 13:26
von computerfreak
Hallo ,
also ich würde die chm-Datei in eine html Datei umwandeln (geht) , und den Html code einbinden
Code: Alles auswählen
html$+" platz für den code "+chr(10) ; chr(10) wird nicht unbedingt benötigt
html$+" platz für mehr code "+chr(10)
html$+" platz für mehr code "+chr(10)
[...]
WebGadget(#Web,0,0,200,200,"about:"+html$)
Nur so `ne Idee
Re: Hilfe in Programm-Datei einbinden
Verfasst: 31.07.2012 13:53
von ts-soft
HTML-Code als Resource einbinden und im WebGadget anzeigen!
Code: Alles auswählen
WebGadget(#webGadget, 0, 0, 100, 100, "res://" + ProgramFilename() + "/index.html")
Re: Hilfe in Programm-Datei einbinden
Verfasst: 15.02.2013 17:33
von dibro
Hi,
das mit derm HTML-Code erscheint mir zu umständlich
Ich habe auch einige Zeit an dem Prob geknabbert und es jetzt wie folgt gelöst:
Code: Alles auswählen
; Hilfedatei in den EXE-Code einbinden
; Die Hilfedatei muss sich beim Compilieren im PB-Verzeichnis befinden
; Beim ersten Programmstart wird sie dann in das Verzeichnis geschrieben, in welchem die EXE läuft
; Die Hilfe wird dann im Prog ganz normal mit OpenHelp("NameDerHilfe.chm","") gestartet
If ReadFile(1,"NameDerHilfe.chm") ;Hilfedatei bereits vorhanden
CloseFile(1)
Else
CreateFile(1,"NameDerHilfe.chm") ; Nicht vorhanden, neu anlegen
WriteData(1,?HilfeAnfang,?HilfeEnde-?HilfeAnfang)
CloseFile(1)
EndIf
DataSection
HilfeAnfang:
IncludeBinary "NameDerHilfe.chm"
HilfeEnde:
EndDataSection
PS. Meine Daten muss ich noch ändern, mittlerweile PB 5.0 Win 8 Pro 64 bit
Re: Hilfe in Programm-Datei einbinden
Verfasst: 15.02.2013 17:45
von NicTheQuick
Falls du dein Programm aus dem Programmordner von Windows starten willst, wird das so nicht funktionieren, weil ein Programm normalerweise keine Adminrechte hat. Deswegen solltest du die Hilfe dann entweder im Anwendungsdaten-Verzeichnis erstellen oder wie schon erwähnt im temporären Verzeichnis.
Übrigens kann man mit 'FileSize("datei") >= 0' überprüfen, ob eine Datei bereits existiert. 'ReadFile()' und danach 'CloseFile()' ist also umständlicher.
Du kannst übrigens auch in den Compiler-Optionen einstellen, wo dein Kompilat erzeugt werden soll und normalerweise werde aus dem selben Verzeichnis dann auch die Dateien genommen, die du mit 'IncludeBinary' und ähnlichem einfügst. Die Alternative wäre direkt ein komplettes Projekt zu erstellen. Ist ja sonst umständlich erst die Datei(en) in das PB-Compilerverzeichnis zu verfrachten.
Re: Hilfe in Programm-Datei einbinden
Verfasst: 15.02.2013 19:31
von dibro
Übrigens kann man mit 'FileSize("datei") >= 0' überprüfen, ob eine Datei bereits existiert.
Danke für den Tip, muss ich noch versuchen.
Ich habe das Prog bisher in mehreren Ordnern un auf einem Stick probiert, bisher klappt alles.
Mir geht es um eine Stand alone Datei, sozusagen to go, die ich ohne Installation überall hin kopieren kann und die dann dort läuft.
Re: Hilfe in Programm-Datei einbinden
Verfasst: 15.02.2013 19:51
von ts-soft
dibro hat geschrieben:die ich ohne Installation überall hin kopieren kann und die dann dort läuft.
Das ist ja jetzt nicht gegeben, es sei denn Du nutzt doch den Tempordner. Mag sein, das Du
zu Hause ein so unsicheres XP mit Admin-Account nutzt, aber das wirste immer seltener antreffen.
Ist natürlich nur wichtig, wenn es auch woanders laufen soll.
Gruß
Thomas