Seite 1 von 1

GadgetToolTip() Mehrzeilig?!

Verfasst: 26.01.2005 18:00
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

Re: GadgetToolTip() Mehrzeilig?!

Verfasst: 29.01.2005 23:11
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:

Re: GadgetToolTip() Mehrzeilig?!

Verfasst: 30.01.2005 11:44
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:

Verfasst: 28.01.2006 17:53
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

Verfasst: 01.02.2006 22:53
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.]

Re: GadgetToolTip() Mehrzeilig?!

Verfasst: 09.12.2006 19:38
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:

Re: GadgetToolTip() Mehrzeilig?!

Verfasst: 10.12.2006 19:58
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.

Verfasst: 10.12.2006 23:20
von AND51
Schön, dass du dafür Zeit hattest. :allright:

Ich werde dies mit Interesse verfolgen.

Verfasst: 18.12.2006 23:22
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

Verfasst: 23.12.2006 18:15
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: