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

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

ShadowJumper

Betreff: MouseX(), MouseY() oder MouseHit() über einer Listbox

BeitragMo, Feb 04, 2008 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Feb 04, 2008 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Feb 04, 2008 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Feb 04, 2008 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Feb 05, 2008 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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)

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group