| |
|
|
Manfred Barei | Hallo,
ist es möglich den bei einem Programmstart für einen Buttton eingestellten Tooltip beim Programmlauf nachträglich zu ändern? Wen der Button eine andere Funktion erhält, soll sich auch der Tooltip ändern.
Gibt es dafür eine Message oder Set Funktion, habe diesbezüglich nichts gefunden.
Grus Manfred |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 20.10.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Am simpelsten wäre es wohl so: KompilierenMarkierenSeparierenCls
Declare btn&,tip&
btn& = Create(Button,%hwnd,Klick mich!,10,10,100,20)
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
While 1
WaitInput
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
Wend
Kommt jetzt darauf an, ob dabei Resourcen verbraten werden.
In Prfellow gibts die Include WFHINTS.inc. Da steht die komplette Apivariante inklusive Text ändern drin. Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 20.10.2007 ▲ |
|
|
|
|
Frank Abbing | Wenn du dem Ganzen noch ein DestroyWindow spendierst, dürfte sich die Resourcenfrage auch erübrigt haben. Tooltipps sind ja ebenfalls Controls. |
|
|
| |
|
|
|
Jörg Sellmeyer | Nee, das funktioniert nicht. Dann taucht kein Tooltip mehr auf |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 20.10.2007 ▲ |
|
|
|
|
Rolf Koch | Habs eben in Winspy geladen und festgestellt, daß es wirklich auch ohne Destroy bei einem Tip bleibt. Komische Sache die zwar super den Zweck erfüllt, aber ich schätze vlcht. regelt dies Windows bereits im Hintergrund, da man jedem Objekt wie Button und Co nur ein TTip zuordnen kann? Würde ich an selber Stelle ein Button immer wieder erzeugen, so würde ich ja logischerweise irgendwann mal sauviele Buttons besitzen und den Speicher in die Knie zwingen. Nicht so bei TTIPS. Also definitiv: Es wird nur ein Handle verbraten mit dem obigen Code. |
|
|
| |
|
|
|
Jörg Sellmeyer | Das habe ich auch getestet. Ich glaube, es liegt daran, daß das Hauptfenster ein TilTipWnd zugeordnet bekommt und darauf werden die texte für die Controls gepinselt, also nicht jedesmal neue Controls erzeugt. Sieht irgendwie unelegant aus aber: riecht wie Erdöl, schmeckt wie Erdöl - hey das muß Erdöl sein! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 20.10.2007 ▲ |
|
|
|
|
Frank Abbing | Scheint so als würde Windows den alten Tooltipp entsorgen, wenn ein Neuer zugewiesen wird. Ist doch in Ordnung. |
|
|
| |
|
|
|
Manfred Barei | Ja, aber man kann ja keinen neuen zuweisen |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 21.10.2007 ▲ |
|
|
|
|
Rolf Koch |
Ja, aber man kann ja keinen neuen zuweisen
Wieso? Praktischer gehts doch nicht, denn Du erzeugst doch einen neuen und dies sogar mit (wenn Du willst) derselben Variable |
|
|
| |
|
|
|
Andreas Miethe
| KompilierenMarkierenSeparieren
Proc SetTipText
Parameters TipCtl&,Owner&,Ctl&,NewText$
Declare ToolInfo#
Dim Toolinfo#,40
Long Toolinfo#,0 = 40
Long ToolInfo#,8 = Owner&
Long ToolInfo#,12 = Ctl&
Long ToolInfo#,36 = Addr(NewText$)
Sendmessage(TipCtl&,1036,0,ToolInfo#)TTM_UPDATETIPTEXT
Dispose ToolInfo#
EndProc
Cls
Declare btn&,tip&
btn& = Create(Button,%hwnd,Klick mich!,10,10,100,20)
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
While 1
WaitInput
SetTipText(Tip&,%hwnd,Btn&,Letzter Klick um : +Time$(0)+:+left$(Time$(1),2))
Wend
Das hier ist auch ganz nett : KompilierenMarkierenSeparieren
Proc SetTipTitle
Parameters TipCtl&,Icon&,Title$
Sendmessage(TipCtl&,1056,Icon&,Addr(Title$))TTM_SETTITLE
EndProc
Proc SetTipText
Parameters TipCtl&,Owner&,Ctl&,NewText$
Declare ToolInfo#
Dim Toolinfo#,40
Long Toolinfo#,0 = 40
Long ToolInfo#,8 = Owner&
Long ToolInfo#,12 = Ctl&
Long ToolInfo#,36 = Addr(NewText$)
Sendmessage(TipCtl&,1036,0,ToolInfo#)TTM_UPDATETIPTEXT
Dispose ToolInfo#
SetTipTitle(Tip&,1,Eine neue Information um +Time$(0)+:+left$(Time$(1),2))
EndProc
Cls
Declare btn&,tip&
btn& = Create(Button,%hwnd,Klick mich!,10,10,100,20)
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
While 1
WaitInput
SetTipText(Tip&,%hwnd,Btn&,Letzter Klick um : +Time$(0)+:+left$(Time$(1),2))
Wend
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 21.10.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Ah! Der Andreas, sehr schön. Ich hatte gestern auch noch rumexperimentiert, aber immer Sendmessage an das falsche Handle geschickt. Deshalb funktionierte es nicht. Besonders das zweite Ding ist großartig! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.10.2007 ▲ |
|
|
|
|
RGH | Und in XProfan 11 wird folgendes reichen:
a: Ohne Tooltip-Überschrift KompilierenMarkierenSeparierenCls
Declare btn&, tip&, text$
btn& = Create(Button,%hwnd,Klick mich!,10,10,100,20)
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
While 1
WaitInput
text$ = Letzter Klick um : +Time$(0)+:+left$(Time$(1),2)
SetText Tip&, %hwnd, Btn&, text$
EndWhile
b: Mit Überschrift: KompilierenMarkierenSeparierenCls
Declare btn&, tip&, text$
btn& = Create(Button,%hwnd,Klick mich!,10,10,100,20)
tip& = Create(ToolTip,%hwnd,btn&,Str$(&GetTickCount))
While 1
WaitInput
text$ = Letzter Klick um : +Time$(0)+:+left$(Time$(1),2)
SetText Tip&, %hwnd, Btn&, text$, 1, text$
EndWhile
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 21.10.2007 ▲ |
|
|
|