MouseX(), MouseY() oder MouseHit() über einer Listbox
Übersicht

![]() |
ShadowJumperBetreff: MouseX(), MouseY() oder MouseHit() über einer Listbox |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe mal versucht, ein Doppelklick/Rechtsklick auf einen Listboxeintrag abzufragen
hier erma mein bisheriger Code dazu: Code: Global skriptwindow=CreateWindow("Skripteditor "+x+"x"+y, 10, 10, 500, 700, 0, 1)
Global skriptwindow_listbox=CreateListBox(0, 0, 100, 100, skriptwindow) AddGadgetItem skriptwindow_listbox, "blaa", 0 AddGadgetItem skriptwindow_listbox, "blab", 1 AddGadgetItem skriptwindow_listbox, "blac", 0 AddGadgetItem skriptwindow_listbox, "blad", 0 AddGadgetItem skriptwindow_listbox, "blae", 0 AddGadgetItem skriptwindow_listbox, "blaf", 0 AddGadgetItem skriptwindow_listbox, "blag", 0 AddGadgetItem skriptwindow_listbox, "blah", 0 AddGadgetItem skriptwindow_listbox, "", 0 mouseleft=0 mouseleftdown=0 Repeat If MouseDown(1)=1 And mouseleft>=MilliSecs() And mouseleftdown=0 Then ;bei 2 linksklicks kurz aufeinander mouseleftdown=1 mouseleft=0 If MouseX()-GadgetX(skriptwindow)>=0 And MouseX()-GadgetX(skriptwindow)<=99 And MouseY()-GadgetY(skriptwindow)>=0 And MouseY()-GadgetY(skriptwindow)<=99 Then End EndIf ElseIf MouseDown(1)=1 And mouseleftdown=0 Then ;bei 1 linkstsklick mouseleftdown=1 mouseleft=MilliSecs()+500 ElseIf MouseDown(1)=0 Then mouseleftdown=0 EndIf If MouseDown(2) Then ;bei 1 rechtsklick If MouseX()-GadgetX(skriptwindow)>=0 And MouseX()-GadgetX(skriptwindow)<=99 And MouseY()-GadgetY(skriptwindow)>=0 And MouseY()-GadgetY(skriptwindow)<=99 Then End EndIf EndIf If SelectedGadgetItem(skriptwindow_listbox)=1 Then SelectGadgetItem skriptwindow_listbox, 0 EndIf Until WaitEvent(0)=$803 Or KeyHit(1) ClearGadgetItems skriptwindow_listbox FreeGadget skriptwindow_listbox FreeGadget skriptwindow End an und für sich funktioniert der Doppelklick ja, aber wenn ich (als Beispiel) "MouseX()-GadgetX(skriptwindow)<=99" machen lasse funktioniert es wieder nicht das ist aber notwendig, damit ich auch wirklich sagen kann, ob der Doppelklick auch auf einem Listboxeintrag gewesen ist wo liegt der Fehler? was kann ich anderes machen? mfg: ShadowJumper |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es gibt kein MouseX / Y /Down / Hit oder Keyboard Down etc, ausserhalb von Canvas!
Da musst du die Events die dazu gehören abfragen wie mousemove, mousehit etc. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
ShadowJumper |
![]() Antworten mit Zitat ![]() |
---|---|---|
weder MouseHit/MouseDown, noch das Event dafür ($201) liefern bei einem klick auf eine Listbox etwas zurück (wobei das Event selbst eigtl. nichts zurückliefert^^)
das Event $401 wird zwar ausgelöst, aber immer dann, wenn ein Eintrag aktiv ist (das ist nicht das gewünschte...) |
||
Bilder kostenlos hosten
lest und weint: RAM - 512 MB; GrafikRAM - 32 MB; CPU - 800 MHz Ps: ... und weint (vor lachen) |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was willst du denn genau erreichen?
Du erhälst einen event wenn ein user einen treenode angeklickt hat, sonst brauchst du ja auch keinen event, deswegen erhälst du keinen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
ShadowJumper |
![]() Antworten mit Zitat ![]() |
---|---|---|
der Event $401 wird nicht nur dann "ausgelöst", wenn ein Eintrag angeklickt wird, sondern auch, wenn man mit den Pfeiltasten die Liste durchgeht
und der Event $201 wird auch nicht ausgelöst ich habe versucht, einen Doppelklick (oder auch nur 1 Klick) auf einem der Einträge abzufragen (eigtl. auf der Listbox und dann abfragen, welcher Eintrag aktiv ist), um dann je nach Eintrag etwas anderes zu machen oder einen Rechtsklick, um mir ein "Kontextmenü" selbst zu schreiben |
||
Bilder kostenlos hosten
lest und weint: RAM - 512 MB; GrafikRAM - 32 MB; CPU - 800 MHz Ps: ... und weint (vor lachen) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group