Hilfe_Fenster
Re: Hilfe_Fenster
Klasse, ich stelle hier im Forum eine Frage und schon gehen sich die User an die Wäsche!?
Als Anfänger soll man da noch durchsteigen. Trotzdem Danke für die Infos!
Ich dachte Anfänger bekommen hier im Forum Hilfestellungen.
Für ein gekauftes PureBasic-Prog brauche bzw. suche ich ein Unterprogramm für ein Hilfe-Fenster.
Na, dann muss ich wohl weitersuchen............
Als Anfänger soll man da noch durchsteigen. Trotzdem Danke für die Infos!
Ich dachte Anfänger bekommen hier im Forum Hilfestellungen.
Für ein gekauftes PureBasic-Prog brauche bzw. suche ich ein Unterprogramm für ein Hilfe-Fenster.
Na, dann muss ich wohl weitersuchen............
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Hilfe_Fenster
Du hast doch Hilfestellung bekommen. Oder sollen wir alles fertig für dich programmieren?
Am einfachsten ist für Windows immer noch eine CHM-Hilfe zu erstellen und die dann zu öffnen. Das hat ja mk-soft geschrieben.
Wie meinst du das? Du hast ein PureBasic-Programm als EXE vorliegen und möchtest jetzt eine Hilfe implementieren? Oder hast du den Quellcode zur Verfügung?Fanpost hat geschrieben:Für ein gekauftes PureBasic-Prog brauche bzw. suche ich ein Unterprogramm für ein Hilfe-Fenster.
Am einfachsten ist für Windows immer noch eine CHM-Hilfe zu erstellen und die dann zu öffnen. Das hat ja mk-soft geschrieben.
Re: Hilfe_Fenster
- Ich will kein fertiges Programm
- Mir liegt der Quellcode vor. Button und Case-Anweisung habe ich bereits implementiert
- CHM-Hilfe sagt mir (noch) nichts
- Den beschriebenen chm-prozessor kann ich nicht installieren, da anscheinend das Projekt schon bei mir vorhanden ist (???) und die Installation abbricht.
- Ich bin absoluter Anfänger (waren andere User bestimmt auch mal)
- Mir liegt der Quellcode vor. Button und Case-Anweisung habe ich bereits implementiert
- CHM-Hilfe sagt mir (noch) nichts
- Den beschriebenen chm-prozessor kann ich nicht installieren, da anscheinend das Projekt schon bei mir vorhanden ist (???) und die Installation abbricht.
- Ich bin absoluter Anfänger (waren andere User bestimmt auch mal)
Re: Hilfe_Fenster
Ja, oder wenn's nur wenig Text ist reicht auch eine einfache HTML-Datei.mk-soft hat geschrieben:Ganz anders...
Hilfedatei erstellen mit http://sourceforge.net/projects/chmprocessor/
und dann OpenHelp(...) von PB
Die kann dann einfach angezeigt werden mit
Code: Alles auswählen
RunProgram(<Pfad>\HTML-Datei)
Richtig, hast du ja auch bekommen.Fanpost hat geschrieben:Ich dachte Anfänger bekommen hier im Forum Hilfestellungen.
Dann ist es wohl sinnvoll, dich alsbald mit einigen grundlegenden PB-Funktionen vertraut zu machen, z.B. denen die dir in diesem Beitrag empfohlen wurden.Fanpost hat geschrieben:Ich bin absoluter Anfänger
Zuletzt geändert von Nino am 07.02.2015 19:19, insgesamt 1-mal geändert.
Re: Hilfe_Fenster
Drücke in PB die Taste F1. Das was du siehst ist eine CHM Datei die gestartet wurde.Fanpost hat geschrieben:- CHM-Hilfe sagt mir (noch) nichts
In einer CHM Datei kannst du mehrere Hilfeseiten in einer Struktur packen.
Wenn du viele Hilfeseiten erstellen möchtest ist CHM sehr nützlich

- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Re: Hilfe_Fenster
für kleine Hilfetexte
Code: Alles auswählen
EnableExplicit
Enumeration
#mainwindow
#helpwindow
#helpgadget
#help_on
#help_off
EndEnumeration
Procedure.i HelpWindowCreate()
Protected flags, oldgadlist, text$, j
flags = #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Tool
flags | #PB_Window_NoGadgets | #PB_Window_Invisible
OpenWindow(#helpwindow, 0, 0, 322, 200, "Hilfe", flags, WindowID(#mainwindow))
oldgadlist = UseGadgetList(WindowID(#helpwindow)) ;sollte benutzt werden
EditorGadget(#helpgadget, 8, 8, 306, 165, #PB_Editor_ReadOnly|#PB_Editor_WordWrap)
ButtonGadget(#help_off, 10, 175, 100, 22, "Close oder ESC")
text$ = "Dies ist eine Hilfezeile im Editorgadget. "
text$ + "Bitte drücken Sie mit der Maus den Closebutton oder den roten Knopf "
text$ + "oder drücken sie Taste ESC" + #CR$ + #CR$
For j = 1 To 20
text$ + "simuliert Text" + #CR$
Next
SetGadgetText(#helpgadget, text$)
UseGadgetList(oldgadlist)
EndProcedure
Procedure.i HelpWindowShow(flag)
If flag = #True
HideWindow(#helpwindow, #False)
Else
HideWindow(#helpwindow, #True)
EndIf
EndProcedure
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
If uMsg = #WM_HELP ;Taste F1 gedrückt, hat eine eigene Message
If hwnd = WindowID(#mainwindow) ;message kommt vom Mainwindow
HelpWindowShow(#True) ;;Hilfe on
EndIf
ElseIf uMsg = #WM_KEYDOWN ;eine Taste wurde gedrückt
If wparam = #VK_ESCAPE ;die ESC Taste
HelpWindowShow(#False) ;Hilfe off
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Define event
Define flags = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
OpenWindow(#mainwindow, 0, 0, 450, 350, "Main", flags)
SetWindowCallback(@WinCallback()) ; Callback aktivieren
;ProgrammGadgets etc
ButtonGadget(#help_on, 10, 320, 88, 22, "Hilfe oder (F1)")
;usw
HelpWindowCreate()
Repeat: event = WaitWindowEvent()
If EventWindow() = #mainwindow
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #help_on
HelpWindowShow(#True)
EndSelect
EndSelect
ElseIf EventWindow() = #helpwindow
Select event
Case #PB_Event_Gadget
If EventGadget() = #help_off
HelpWindowShow(#False)
EndIf
Case #PB_Event_CloseWindow
event = 0 ;CloseWindow Event löschen !!!
HelpWindowShow(#False)
EndSelect
EndIf
Until event = #PB_Event_CloseWindow
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Hilfe_Fenster
Hier mal eine Version, die auch auf Linux läuft.
Code: Alles auswählen
EnableExplicit
Enumeration
#mainwindow
#helpwindow
#helpgadget
#help_on
#help_off
EndEnumeration
Enumeration MenuEvent
#HELP_OPEN
#HELP_CLOSE
EndEnumeration
Declare WinCallback()
Declare HelpWindowClose()
Procedure.i HelpWindowCreate()
Protected flags, oldgadlist, text$, j
flags = #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Tool
flags | #PB_Window_NoGadgets | #PB_Window_Invisible
OpenWindow(#helpwindow, 0, 0, 322, 200, "Hilfe", flags, WindowID(#mainwindow))
AddKeyboardShortcut(#helpwindow, #PB_Shortcut_Escape, #HELP_CLOSE)
BindEvent(#PB_Event_Menu, @WinCallback(), #helpwindow)
BindEvent(#PB_Event_CloseWindow, @HelpWindowClose(), #helpwindow)
oldgadlist = UseGadgetList(WindowID(#helpwindow)) ;sollte benutzt werden
EditorGadget(#helpgadget, 8, 8, 306, 165, #PB_Editor_ReadOnly|#PB_Editor_WordWrap)
ButtonGadget(#help_off, 10, 175, 100, 22, "Close oder ESC")
BindGadgetEvent(#help_off, @HelpWindowClose())
text$ = "Dies ist eine Hilfezeile im Editorgadget. "
text$ + "Bitte drücken Sie mit der Maus den Closebutton oder den roten Knopf "
text$ + "oder drücken sie Taste ESC" + #CR$ + #CR$
For j = 1 To 20
text$ + "simuliert Text" + #CR$
Next
SetGadgetText(#helpgadget, text$)
UseGadgetList(oldgadlist)
EndProcedure
Procedure.i HelpWindowShow(flag)
HideWindow(#helpwindow, Bool(Not flag))
EndProcedure
Procedure HelpWindowClose()
HelpWindowShow(#False)
EndProcedure
Procedure WinCallback()
Select EventMenu()
Case #HELP_OPEN
HelpWindowShow(#True)
Case #HELP_CLOSE
HelpWindowShow(#False)
EndSelect
EndProcedure
Define event
Define flags = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
OpenWindow(#mainwindow, 0, 0, 450, 350, "Main", flags)
AddKeyboardShortcut(#mainwindow, #PB_Shortcut_F1, #HELP_OPEN)
BindEvent(#PB_Event_Menu, @WinCallback(), #mainwindow)
;ProgrammGadgets etc
ButtonGadget(#help_on, 10, 320, 88, 22, "Hilfe oder (F1)")
;usw
HelpWindowCreate()
Repeat
event = WaitWindowEvent()
If EventWindow() = #mainwindow
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #help_on
HelpWindowShow(#True)
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
EndIf
ForEver