GadgetToolTip() Mehrzeilig?!

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

GadgetToolTip() Mehrzeilig?!

Beitrag von Lukaso »

Hallo,

ich habe heute versucht mehrzeilige ToolTips zu erstellen. Leider geht Chr(13) (+ Chr(10)) nicht bei GadgetToolTip(). Und WinApi möchte ich nicht /:->

Danke :allright:

Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: GadgetToolTip() Mehrzeilig?!

Beitrag von Andre »

Lukaso hat geschrieben:ich habe heute versucht mehrzeilige ToolTips zu erstellen. Leider geht Chr(13) (+ Chr(10)) nicht bei GadgetToolTip(). Und WinApi möchte ich nicht /:->
Als Feature-Request an Fred weitergeleitet.
Unterstütze diesen Wunsch übrigens auch... :wink:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Re: GadgetToolTip() Mehrzeilig?!

Beitrag von Lukaso »

Andre hat geschrieben:Als Feature-Request an Fred weitergeleitet.
Unterstütze diesen Wunsch übrigens auch... :wink:
Danke :allright: Hoffe es kommt bald :lol:
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Thomas Kühn
Beiträge: 15
Registriert: 06.01.2005 12:58
Wohnort: Stuttgart

Beitrag von Thomas Kühn »

Hallo,

anbei ein bissle Code (mit Beispiel), um mehrzeilige GadgetToolTips zu erstellen. Ich habe den Code von Falko (BallonTip) etwas modifiziert, um auch mehrere Gadgets verwalten zu koennen.

Gruss
Thomas

Code: Alles auswählen

Structure ToolTipExStructure
   Window.l
   Gadget.l
   hWndToolTip.l
EndStructure
NewList ToolTipExList.ToolTipExStructure()

;Supports Multi Line GadgetToolTip
;for Multi Line use : ...Chr(13) + Chr(10)...
Procedure GadgetToolTipEx(Window.l, Gadget.l, ToolTipText.s , ToolTipTitle.s)  
   
   found.b
   index.l
  
   ResetList(ToolTipExList())
   found = #False
   While NextElement(ToolTipExList())
      If ToolTipExList()\Window = Window And ToolTipExList()\Gadget = Gadget
         found = #True
         index = ListIndex(ToolTipExList())
         LastElement(ToolTipExList())
      EndIf    
   Wend  
  
   If found = #True  
      SelectElement(ToolTipExList(), index)
      hWndToolTip = ToolTipExList()\hWndToolTip 
   Else
      LastElement(ToolTipExList())
      AddElement(ToolTipExList())
      ToolTipExList()\Window = Window
      ToolTipExList()\Gadget = Gadget   
      hWndToolTip = CreateWindowEx_(0, "ToolTips_Class32", "", #WS_POPUP | #TTS_NOPREFIX, 0, 0, 0, 0, WindowID(Window), 0, GetModuleHandle_(0), 0)
      ToolTipExList()\hWndToolTip = hWndToolTip    
   EndIf
  
   SendMessage_(hWndToolTip, #TTM_SETTIPTEXTCOLOR, GetSysColor_(#COLOR_INFOTEXT), 0)
   SendMessage_(hWndToolTip, #TTM_SETTIPBKCOLOR, GetSysColor_(#COLOR_INFOBK), 0)    
   SendMessage_(hWndToolTip, #TTM_SETMAXTIPWIDTH, 0, 2.2 * Len(ToolTipText))
  
   Tip.TOOLINFO\cbSize = SizeOf(TOOLINFO)
   Tip\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
   Tip\hWnd = GadgetID(Gadget)
   Tip\uId = GadgetID(Gadget)
   Tip\lpszText = @ToolTipText
   SendMessage_(hWndToolTip, #TTM_ADDTOOL, 0, Tip)
  
   If ToolTipTitle > ""
      SendMessage_(hWndToolTip, #TTM_SETTITLE, 0, @ToolTipTitle)
   EndIf
 
EndProcedure


;* * * * * * * * * *


Enumeration
  #Window
  #String1
  #String2
  #String3
  #String4
EndEnumeration

If OpenWindow(#Window, 200, 200, 290, 200,  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Example GagdetToolTipEx")    
   If CreateGadgetList(WindowID(#Window))
      StringGadget(#String1, 20, 20, 250, 25, "Standard ToolTip", #PB_String_ReadOnly)
      GadgetToolTipEx(#Window, #String1, "Standard ToolTip Standard ToolTip Standard ToolTip Standard ToolTip Standard ToolTip Standard ToolTip", "")      
            
      StringGadget(#String2, 20, 65, 250, 25, "Multi Line ToolTip", #PB_String_ReadOnly)
      GadgetToolTipEx(#Window, #String2, "Multi Line" + Chr(13) + Chr(10) + "ToolTip", "")
      
      StringGadget(#String3, 20, 110, 250, 25, "ToolTip with Title", #PB_String_ReadOnly)
      GadgetToolTipEx(#Window, #String3, "ToolTip with Title", "ToolTipTitle")

      StringGadget(#String4, 20, 155, 250, 25, "Multi Line ToolTip with Title", #PB_String_ReadOnly)
      GadgetToolTipEx(#Window, #String4, "ToolTip with Title" + Chr(13) + Chr(10) + "and Multi Line", "ToolTipTitle")
           
      Repeat
      Until WaitWindowEvent() = #PB_EventCloseWindow
            
   EndIf
EndIf

End
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Also ich kann positiver Weise berichten, dass Zeilenumbrücje sowie tabstops (Chr(9) und Chr(10))) in SystrayToolTips funktionieren. Zumindest bei mir.
[Wenn das was hilft.]
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Re: GadgetToolTip() Mehrzeilig?!

Beitrag von AND51 »

Andre hat geschrieben:
Lukaso hat geschrieben:ich habe heute versucht mehrzeilige ToolTips zu erstellen. Leider geht Chr(13) (+ Chr(10)) nicht bei GadgetToolTip(). Und WinApi möchte ich nicht /:->
Als Feature-Request an Fred weitergeleitet.
Unterstütze diesen Wunsch übrigens auch... :wink:
Was ist eigentlich daraus geworden? In der PB 4 Hilfe steht nix davon, meine testes schlagen alle fehl.

Hatte fred nur seinen Anrufbeantworter dran und deine Nachricht noch nciht abgehört? :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: GadgetToolTip() Mehrzeilig?!

Beitrag von Andre »

AND51 hat geschrieben:Was ist eigentlich daraus geworden? In der PB 4 Hilfe steht nix davon, meine testes schlagen alle fehl.

Hatte fred nur seinen Anrufbeantworter dran und deine Nachricht noch nciht abgehört? :lol:
Keine Ahnung... :twisted: :lol:

Habe Fred dsbzgl. nochmals angemailt und auf diesen Wunsch hingewiesen.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Schön, dass du dafür Zeit hattest. :allright:

Ich werde dies mit Interesse verfolgen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Hartmut
Beiträge: 56
Registriert: 15.09.2006 22:22
Kontaktdaten:

Beitrag von Hartmut »

Hallo Andre,

bitte hake da nochmal nach - ich denke du hast da bessere Chancen,
als wenn sich irgendjemand unbekanntes bei Fred meldet

So wie sie ist, ist die ToolTip-Funktion praktisch unbrauchbar, denn gerade
Erklärungen zur Funktion eines Gadgets brauchen eben manchmal etwas mehr Text.
Und es kann doch nicht sein, dass ich hier WindowsAPI-Verrenkungen machen muss, damit der Tooltip mehrzeilig wird, und dann funktioniert die Sache auch nur noch unter Windows.

So etwas gehört - gerade unter dem Gedanken des Cross-platform-developement - in den Standardbefehlssatz !

PureBasic soll doch auch zur Anwendungsprogrammierung und nicht nur für Spiele geeignet sein, oder ?

Vielen Dank und viele Grüße :allright:

Hartmut
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@Hartmut: um im allgemeinen Befehlssatz von PB zu landen, müssen die Features dann auch auf MacOS und Linux möglich sein.

Wäre schön, wenn die Verfügbarkeit von mehrzeiligen Tooltips mal jemand von den Linux- und/oder MacOS-Usern überprüfen könnte.

Anschließend diesen Wunsch am besten in die Feature-Requests im englischen Forum posten. Dort sind sie (genauso wie Bug-Meldungen) am besten aufgehoben, als wenn ich Fred per Email Hinweise gebe.
Sozusagen seine Online-Todo-Liste... :mrgreen:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten