Seite 1 von 1

AddGadgetItem in einer Repeat/Until-Schleife

Verfasst: 05.02.2005 23:03
von Bytedevil
Hallo!

Ich habe folgenden Code:

Code: Alles auswählen

...
...

Repeat
 GetCursorPos_ (Mauskoordinaten(0))
 hWnd = WindowFromPoint_ (Mauskoordinaten(0)\x,Mauskoordinaten(0)\y)
 
 If hWnd <> 0 : AddGadgetItem (0,0,Str(hWnd)) : hWnd = 0 : EndIf
Until WaitWindowEvent () = #PB_Event_CloseWindow
Das Gadget erhält nur beim Überfahren eines Fensters nicht nur einen, sondern hunderte Einträge.

Warum? Wo steckt der Fehler?

Danke,
Bytedevil

Verfasst: 05.02.2005 23:11
von Hroudtwolf
Vieleicht so ?

Code: Alles auswählen

...
...

Repeat
 GetCursorPos_ (Mauskoordinaten(0))
 hWnd = WindowFromPoint_ (Mauskoordinaten(0)\x,Mauskoordinaten(0)\y)
 
 If hWnd <> 0 
nix=0
for x=0 to countgadgetitems(0)-1
if  getgadgetitemtext (0,x,0)=str(hWnd):nix=1:endif 
next x
 if nix=0:AddGadgetItem (0,0,Str(hWnd)):endif
 hWnd = 0 
 EndIf

Until WaitWindowEvent () = #PB_Event_CloseWindow 

Verfasst: 05.02.2005 23:15
von GPI
Ein Delay(1) würde ich reinhauen, sonst frist es 100% Resourcen.

Verfasst: 05.02.2005 23:18
von Hroudtwolf
Stimmt hab ich vergessen ..Sorry

Verfasst: 05.02.2005 23:51
von Bytedevil
Hab mich vielleicht unglücklich ausgedrückt... eine Lösung àla Hroudtwolf hätte ich mir sicherlich auch noch zusammenbasteln können.

Trotzdem: VIELEN DANK!!!

Aber warum verhält sich mein Programm so? Eigentlich müßte es doch nur einen Eintrag machen, da hWnd ja auf "0" gesetzt wird.

Verfasst: 06.02.2005 00:00
von Donald
Hi,

klar setzte den auf 0,
und beim nächsten durchlauf wird der Wert wieder eingelesen.

Verfasst: 06.02.2005 00:07
von Bytedevil
Manchmal sieht man den Wald vor Bäumen nicht...