Re: Mauszeiger
Verfasst: 28.04.2013 14:17
Das hilft uns immer noch nicht sonderlich weiter, denn dein Code ist nach wie vor so nicht lauffähig. Im Übrigen habe ich einen Vorschlag für dich gebastelt, der besser zu handhaben ist also deine Makro-Lösung mit den 60 Ifs:
Code: Alles auswählen
DataSection
GadgetsToCheck:
Data.i 59 ;Anzahl der zu überprüfenden Gadgets
;Und hier dann die 59 zu überprüfenden Gadget-Nummern
Data.i 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Data.i 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
Data.i 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54
Data.i 55, 56, 57, 58, 59, 60
EndDataSection
Restore GadgetsToCheck
Define maxGadgets.i, AC.i, i.i
Read.i maxGadgets
GetCursorPos_(mouse.POINT) ;Es reicht aus das einmal abzufragen
For i = 1 To maxGadgets
Read.i AC
If GetWindowRect_(GadgetID(AC), GadgetRect.RECT)
If mouse\x >= GadgetRect\Left And mouse\x <= GadgetRect\right And mouse\y >= GadgetRect\Top And mouse\y <= GadgetRect\bottom
If AC > 0 And i < 121
SetSystemCursor_(LoadCursor_(0, #IDC_HAND), #OCR_NORMAL)
EndIf
GTX = AC
GT$ = GetGadgetText(GTX)
If AC > 500 And AC < 521 And GT$ <> ""
SetSystemCursor_(LoadCursor_(0,#IDC_HAND), #OCR_NORMAL)
HideGadget(AC + 40, 0)
HideGadget(AC + 100, 0)
EndIf
Break ;Beende die For-Schleife, wenn die Maus über diesem Gadget steht
EndIf
EndIf
Next
If i > maxGadgets ;wenn kein Gadget gefunden wurde, ist i eins größer als maxGadgets, stellt also den Else-Fall dar.
SetSystemCursor_(LoadCursor_(0, #IDC_ARROW), #OCR_NORMAL)
EndIf