mausklick im canvas fenster finden...
Übersicht

x_toBetreff: mausklick im canvas fenster finden... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie kann ich in einem canvas fenster einen linken mausklick feststellen, bzw. abfragen..???
mit mousedown() klappts leider nicht.... ![]() irgendjemand andere ideen..?? |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If WaitEvent() = $201 Then
MX = EventX() MY = EventY() EndIf mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm...funktioniert nur bei gadgets, aber nicht bei einem klick im canvas fenster....
andere möglichkeiten...??? |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Ein Canvas ist ein Gadget.
2. Es funktioniert auch bei Canvas-Objekten Code: [AUSKLAPPEN] Window = CreateWindow("",100,100,300,250,0,1)
Canvas = CreateCanvas(5,5,ClientWidth(Window)-10,ClientHeight(Window)-10,Window) Repeat Select WaitEvent() Case $201 If EventSource() = Canvas Then Notify EventX()+" x "+EventY() EndIf Case $803 End End Select Forever Oder habe ich deine Frage falsch verstanden ? mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, jetzt gehts...danke...hab irgendwie was falsch gemacht... ![]() hattest mich schon richtig verstanden... ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was eventuell sein könnte ist das das Canvas Gadget vorher nicht aktiviert war. Dann gibts auch keine Events von ihm. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einfacher:
Code: [AUSKLAPPEN] MouseX(Canvas) ;<---- Canvas in die Klammern schreiben MouseY(Canvas) ;Und eben dann Event $201 |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibt es auch die möglichkeit in BlitzPlus die maus abzufragen, ob es nur ein klick war oder der mausbutton noch gedrückt ist..???
z.b. ein malwerkzeug in einem canvas fenster....für jeden einzelnen pixel müßte man den linken button ewig neu klicken.... ich wollte die möglichkeit bieten zu zeichnen, während die taste gedrückt ist... gibts das..??? |
||
![]() |
Valnar |
![]() Antworten mit Zitat ![]() |
---|---|---|
MouseDown![]() ![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich kenne die funktionen, allerdings funktionieren sie nicht im eventhandler...![]() Code: [AUSKLAPPEN] Repeat
Select WaitEvent() Case $201 Select EventSource() Case canvas_main Select EventData() Case 1 Select SelectedGadgetItem(tabTabber0) Case 0 map_data(get_column(),get_row()) = tile_id draw_map() Case 1 coll_data(get_column(),get_row()) = mask_id draw_map() End Select Case 2 End Select End Select End Select irgendjemand andere ideen ??? |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Frag halt des Event $101 ab und wenn EventData() deine Taste enthält setzt du eine Globale Var auf True. Bei Event $102 setzt du sie wieder auf False. So weißt du immer ob sie gerade gedrückt wird.
EDIT: Ich weiß auch nicht wie ich da auf Tasten gekommen bin. Des ganze natürlich für Maus |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
- Zuletzt bearbeitet von flona am Di, Jan 27, 2009 14:49, insgesamt einmal bearbeitet
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guten Abend,
KOMPLETT-EDIT 2 Code: [AUSKLAPPEN] Type linien Field x1% Field y1% Field x2% Field y2% End Type win = CreateWindow ("Test",10,10,800,600,0,01) restorewindow win can = CreateCanvas (20,20,640,480,win) SetBuffer canvasbuffer(can) Repeat ev=WaitEvent() es=EventSource() ed=EventData() If ev=$201 And es=can And ed= 1 Then draw=True linie.linien = New linien linie\x1=MouseX(can) linie\y1=MouseY(can) EndIf If ev=$203 And es=can And draw=True Then linie\x2=MouseX(can) linie\y2=MouseY(can) Cls For drawlinie.linien = Each linien Line drawlinie\x1,drawlinie\y1,drawlinie\x2,drawlinie\y2 Next flipcanvas(can) tmpX = linie\x2 tmpY = linie\y2 linie.linien = New linien linie\x1=tmpX linie\y1=tmpY EndIf If ev=$202 And ed=1 Then draw=False linie\x2=MouseX(can) linie\y2=MouseY(can) EndIf Until ev=$803 And es=win End So könntest du es machen. Fehlen tut noch ein Test, ob sich der Mauszeiger überhaupt noch im Canvas befindet, aber das solllte kein Problem sein. (Es hat noch nen kleinen Bug: Wenn du malst, loslässt, kurz iwo im fenster wo kein Canvas ist klickst und dann wieder im Cnvas malst, kommen komische Linien. ABer das obere ist ja nur das Prinzip mal ganz grob skizziert ![]() MFG |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group