Seite 1 von 1
GadgetItemToolTip ... Gibbed sowatt?
Verfasst: 18.10.2006 11:56
von Xaby
Vielleicht irgendwie mit
Ergebnis = GadgetItemID(#Gadget, Eintrag)
und
GadgetToolTip(#Gadget, Text$)
???
Ziel ist, dass man am Ende wie mit dem ToolTipGadget auch den Text ändern kann, wenn man weiß, ...
Oder anders, woher weiß ich, überwelcher Zelle mein Mauszeiger ist?
Dann könnte ich ja den ZellenInhalt oder was auch immer in den GadgetToolTip schreiben.
Gruß, Folker

Verfasst: 18.10.2006 14:54
von AND51
Du musst dich deutlicher ausdrücken, was meinst du mit Zele? Willst du auf ein
Listicongadget() hinaus? Wenn ja, sag das bitte DEUTLICH.
Code: Alles auswählen
x=DesktopMouseX()
y=DesktopMouseY()
gadgetID=GetWindowFromPoint_(x, y)
Dieser API Befehl gibt die die gadgetID (das Handle) Des Gadgets oder des Fensters zurück, auf dem sich der Mauszeiger befindet, kannst du eigene Koordinaten einsetzen. Hinweis: gadgets sind immer über fenstern, wenn also die Maus auf einem Textgadget drauf ist, kriegst du davon das Handle, nicht vom fenster. Kriegst nur das hwnd, wenn die Maus auf eine freire Stelle auf dem Fenster parkt.
Verfasst: 18.10.2006 22:13
von Fluid Byte
Code: Alles auswählen
Declare WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
#LVS_EX_INFOTIP = $00000400
#LVN_GETINFOTIPA = (#LVN_FIRST-57)
#LVN_GETINFOTIPW = (#LVN_FIRST-58)
#LVM_SETEXTENDEDLISTVIEWSTYLE = (#LVM_FIRST + 54)
Global lpBuffer.l
OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1)
CreateGadgetList(WindowID(0))
ListIconGadget(0,5,5,0,0,"Name",350)
For i=1 To 50 : AddGadgetItem(0,-1,"Untitled ListView32 Item #" + Str(i)) : Next
SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_INFOTIP)
SetWindowCallback(@WindowCallback())
; ------------------------------------------------------------------------
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_SizeWindow
ResizeGadget(0,#PB_Ignore,#PB_Ignore,WindowWidth(0)-10,WindowHeight(0)-10)
EndIf
Until EventID = 16
; ------------------------------------------------------------------------
Procedure WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
Select uMsg
Case #WM_NOTIFY
*pnmh.NMHDR = lParam
If *pnmh\code = #LVN_GETINFOTIPA
*pnml.NMLVGETINFOTIP = lParam
lpBuffer = ReAllocateMemory(lpBuffer,80)
PokeS(lpBuffer,GetGadgetItemText(0,*pnml\iItem,0))
*pnml\pszText = lpBuffer
EndIf
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Verfasst: 19.10.2006 07:31
von Xaby
@Fluid Byte ...
sieht für mich zwar etwas mystisch aus, aber ist genau das, was ich gemeint habe
@AND51 ...
tja, Fluid handelt, ohne noch drei Aufforderungen zu bekommen
Gruß, Folker

Verfasst: 19.10.2006 18:14
von Fluid Byte
Xaby hat geschrieben:sieht für mich zwar etwas mystisch aus, aber ist genau das, was ich gemeint habe
Stimmt, weil ToolTips für Gadget Items als Standard nur mit dem Windows API möglich sind. Ich könnte dir näturlich auch ein "workaround" basteln das nur auf PB Befehlen beruht. Ist aber dann nicht so effizent und elegant wie die API Lösung.
Xaby hat geschrieben:tja, Fluid handelt, ohne noch drei Aufforderungen zu bekommen
Hehehe
Ich weiss genau was du meinst. Das ist eine typisch deutsche Unart. Alles hinterfragen, strikt und ordentlich formuliert muß es sein, etc. Das ist keine Einbildung sondern Fakt. Da ich bis vor Kurzem auschließlich auf dem englischen board unterwegs war merkt man den Unterschied recht deutlich.

Verfasst: 01.12.2006 00:07
von JohnMC
@ FLuid Byte:
Danke für den Code, sehr hilfreich!
Nur wenn mein ListIcon jetzt noch CheckBoxen bekommt, werden die nichtmehr angezeigt und das ganze Programm ist im A****

, dauernd hängts und so...
Ich denke dass die Konstanten nicht für "Mit-CheckBoxen-ListIcons" geeigente sind!?
Kannst du mir die den richtigen COde für mein armes CheckBox-ListIcon geben/schreiben?
THX Grüße...JohnMC