[gelöst] Hilfefunktion (Titelleiste)
[gelöst] Hilfefunktion (Titelleiste)
moin, moin...
In vielen Programmen gibts die Möglichkeit, in der Titelleiste eines Fensters ein Fragezeichen anzuklicken, dann auf einen Bereich zu klicken und für diesen Bereich (bzw dessen Funktion) eine Hilfe/Info zu bekommen.
(Wie) Kann ich diese Funktionalität in mein PB-Proggi integrieren ?
(Wo) Gibts ein Beispiel ?
schönes Wochenende...
scholly
In vielen Programmen gibts die Möglichkeit, in der Titelleiste eines Fensters ein Fragezeichen anzuklicken, dann auf einen Bereich zu klicken und für diesen Bereich (bzw dessen Funktion) eine Hilfe/Info zu bekommen.
(Wie) Kann ich diese Funktionalität in mein PB-Proggi integrieren ?
(Wo) Gibts ein Beispiel ?
schönes Wochenende...
scholly
Zuletzt geändert von scholly am 21.04.2008 22:13, insgesamt 1-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
Wenn ich mich recht erinnere, gibt es eine derartige Funktion in der SkinWin-Lib.
Schau mal hier:
http://www.pbosl.purearea.net
Schau mal hier:
http://www.pbosl.purearea.net
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
mit der PBOSL_SkinWin Lib kannste den Style erstellen, aber das Codebeispiel mit den Messages, war wahrscheinlich im CodeArchiv???, finde ich im moment leider nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

moin, moin...
"ShowhelpButton" ist drin, aber bei den ganzen 5 MB Beispielen klappt noch
nichmal das mit Skinwin :(
Ma kucken, ob bei den "normalen Beispielen" zufälligerweise was reingerutscht ist, denn ohne die Messages komm ich wohl nich weiter.
Vielleicht find ich ja was in den sourcn...
bis denne...
scholly
ps: geil, wie schnell einem hier gehelft wird ;)
genausoweit binnich grade :(ts-soft hat geschrieben:mit der PBOSL_SkinWin Lib kannste den Style erstellen, aber das Codebeispiel mit den Messages, war wahrscheinlich im CodeArchiv???, finde ich im moment leider nicht.
"ShowhelpButton" ist drin, aber bei den ganzen 5 MB Beispielen klappt noch
nichmal das mit Skinwin :(
Ma kucken, ob bei den "normalen Beispielen" zufälligerweise was reingerutscht ist, denn ohne die Messages komm ich wohl nich weiter.
Vielleicht find ich ja was in den sourcn...
bis denne...
scholly
ps: geil, wie schnell einem hier gehelft wird ;)
Zuletzt geändert von scholly am 26.07.2008 15:17, insgesamt 1-mal geändert.
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
Code: Alles auswählen
DeinFenster = OpenWindow(#PB_Any, 0, 0, 200, 200, #PB_Window_ScreenCentered|#PB_Window_SystemMenu, "Dein Fenster")
ShowHelpButton(WindowID(DeinFenster), #TRUE)
Repeat
Until WindowEvent() = #PB_Event_CloseWindow
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Muß ich mir das mit Maus-Positionen selbst zusammensuchen ?
Nein, wenn ich das Schnipsel gefunden habe nicht, dafür gibt es Messages, die ich leider nicht finde, aber ich suche weiter
//Edit
Auf jedenfall wird eine #WM_HELP message ausgelöst, mußte nur noch abfragen welche Gadget den Fokus hat, wenn diese Message auftritt.
Pseudo-Code:
Nein, wenn ich das Schnipsel gefunden habe nicht, dafür gibt es Messages, die ich leider nicht finde, aber ich suche weiter

//Edit
Auf jedenfall wird eine #WM_HELP message ausgelöst, mußte nur noch abfragen welche Gadget den Fokus hat, wenn diese Message auftritt.
Pseudo-Code:
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #WM_HELP
ButtonID = GetFocus_()
;;;
;;
EndSelect
ForEver
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

moin, moin...
Nachdem ich jetzt meine registrierte Version habe, sollte ich eigentlich eine Reaktion aufs Drücken des HELP-Buttons provozieren können, aber nix tut sich
Gibts jemand, der anhand dieses Schnipsels erklären mag, was ich wo falsch mache ?
bis denne...
scholly
Nachdem ich jetzt meine registrierte Version habe, sollte ich eigentlich eine Reaktion aufs Drücken des HELP-Buttons provozieren können, aber nix tut sich

Gibts jemand, der anhand dieses Schnipsels erklären mag, was ich wo falsch mache ?
Code: Alles auswählen
If OpenWindow(0,10,10,790,590, #PB_Window_SystemMenu | #PB_Window_ScreenCentered,"help-test")
ShowHelpButton( WindowID((0)), #True )
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 200, 20, "Standard Button")
ButtonGadget(1, 10, 40, 200, 20, "Left Button", #PB_Button_Left)
ButtonGadget(2, 10, 70, 200, 20, "Right Button", #PB_Button_Right)
ButtonGadget(3, 10,100, 200, 60, "Multiline Button (longer text gets wrapped)", #PB_Button_MultiLine)
ButtonGadget(4, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle)
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #WM_HELP
Debug "buttonID: "
ButtonID = GetFocus_()
Debug ButtonID
Select ButtonID
Case 0
Debug "standard button"
Case 1
Debug "left button"
Default
Debug "I dont care"
EndSelect
Case #PB_Event_CloseWindow
Debug "closewindow"
Break
EndSelect
ForEver
End ; regular end of code
scholly
Ich glaube das PB die Message gar nicht verarbeitet , mit einem
Callback sollte es dann aber gehen .
Callback sollte es dann aber gehen .
Code: Alles auswählen
Procedure MyWindowCallback(WindowID, message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Protected *Help.HELPINFO
Select message
Case #WM_HELP
*Help = lParam
Debug *Help\iCtrlId ;> Control Id
Debug *Help\hItemHandle ;> Control Handle
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0,10,10,790,590, #PB_Window_SystemMenu | #PB_Window_ScreenCentered,"help-test")
ShowHelpButton( WindowID((0)), #True )
SetWindowCallback(@MyWindowCallback())
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 200, 20, "Standard Button")
ButtonGadget(1, 10, 40, 200, 20, "Left Button", #PB_Button_Left)
ButtonGadget(2, 10, 70, 200, 20, "Right Button", #PB_Button_Right)
ButtonGadget(3, 10,100, 200, 60, "Multiline Button (longer text gets wrapped)", #PB_Button_MultiLine)
ButtonGadget(4, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle)
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Debug "closewindow"
Break
EndSelect
ForEver
End ; regular end of code