This is exactly where your trouble comes from.
Adding Window1.
as a prefix does change nothing to the matter (workse, read: Me vs. Self – Xojo Programming Blog).
In your project, using in the MouseUp Event:
Window1.Canvas1.Graphics.
is the source of the evil.
At last: Window1.Canvas1.Graphics.DrawOval
does not exists. I saw that at compile time.
I sent a post with what I did but I am not seeing it so I will send it again…
In MouseUP I have…
app.gMousedownXU = X
app.gMousedownYU = Y
MouseUp = true
Invalidate()
and in Paint I have…
if MouseUp = true Then
g.ForeColor = &cFF0000
g.DrawOval(app.gMousedownXD-3, app.gMousedownYD-3, app.gMousedownXU-app.gMousedownXD+6, app.gMousedownYU-app.gMousedownYD+6)
g.DrawOval(app.gMousedownXD, app.gMousedownYD, app.gMousedownXU-app.gMousedownXD, app.gMousedownYU-app.gMousedownYD)
else
end if
MouseUp = false
In Xojo 2018 Release 4, I can do single marquees, but when I try multiple marquees, the last one is displayed but the previous one is erased.
Thanks.
Lennox
Hi Emile,
I don’t have
Window1.Canvas1.Graphics
I have this…
app.gMousedownXU = X
app.gMousedownYU = Y
Canvas1.Graphics.ForeColor = &cFF0000
Canvas1.Graphics.DrawOval ( app.gMousedownXD-3, app.gMousedownYD-3, app.gMousedownXU-app.gMousedownXD+6, app.gMousedownYU-app.gMousedownYD+6 )
Canvas1.Graphics.DrawOval ( app.gMousedownXD, app.gMousedownYD, app.gMousedownXU-app.gMousedownXD, app.gMousedownYU-app.gMousedownYD )
and that works in Xojo 2018 Release 2.
This is what I have now
In MouseUP I have…
app.gMousedownXU = X
app.gMousedownYU = Y
MouseUp = true
Invalidate()
and in Paint I have…
if MouseUp = true Then
g.ForeColor = &cFF0000
g.DrawOval(app.gMousedownXD-3, app.gMousedownYD-3, app.gMousedownXU-app.gMousedownXD+6, app.gMousedownYU-app.gMousedownYD+6)
g.DrawOval(app.gMousedownXD, app.gMousedownYD, app.gMousedownXU-app.gMousedownXD, app.gMousedownYU-app.gMousedownYD)
else
end if
The project that works in Xojo 2018 Release 2 has been uploaded here… https://www.mediafire.com/file/4ngk8i7ha8aq2al/Multiple_Graphic_Marquee_2019_Feb_10'.xojo_binary_project/file
Thanks.
Lennox
MouseUp = false
Hi Lennox,
[I was talking about that example]
the shared project does not compile with Xojo 2018r4.
for example:
[code]Sub MouseUp(X As Integer, Y As Integer) Handles MouseUp
app.gMousedownXU = X
app.gMousedownYU = Y
Canvas1.Graphics.ForeColor = &cFF0000
Canvas1.Graphics.DrawOval ( app.gMousedownXD-3, app.gMousedownYD-3, app.gMousedownXU-app.gMousedownXD+6, app.gMousedownYU-app.gMousedownYD+6 )
Canvas1.Graphics.DrawOval ( app.gMousedownXD, app.gMousedownYD, app.gMousedownXU-app.gMousedownXD, app.gMousedownYU-app.gMousedownYD )
End Sub[/code]
You have to note the name of the event is MouseUp
and you use Canvas1.Graphics
in the 3 offended lines (these lines do not compile).
Yes Emile, I know that, it compiles and works in Xojo 2018r2 but not in Xojo 2018r4.
I have changed that to
In MouseUP I have…
app.gMousedownXU = X
app.gMousedownYU = Y
MouseUp = true
Invalidate()
and in Paint I have…
if MouseUp = true Then
g.ForeColor = &cFF0000
g.DrawOval(app.gMousedownXD-3, app.gMousedownYD-3, app.gMousedownXU-app.gMousedownXD+6, app.gMousedownYU-app.gMousedownYD+6)
g.DrawOval(app.gMousedownXD, app.gMousedownYD, app.gMousedownXU-app.gMousedownXD, app.gMousedownYU-app.gMousedownYD)
else
end if
That compiles in Xojo 2018r4 but I can only get one marquee…
In Xojo 2018 Release 4, I can do single marquees, but when I try multiple marquees, the last one is displayed but the previous one is erased.
Thanks.
Lennox
Isnt it because you paint it in the Paint Event ?
(it disappears at the first refresh / Refresh happens when you Paint something in the Paint Event).
What about a Picture property (in App or Window) and Paint there ?
Doing so make no Paint disappearance(s).
Doing so will make the errors in Xojo 2018r4 to disappears.
Edit:
I trashed Xojo 2108r2 (as soon as r3 appears and do the same as soon as r4 appears).
I added to your project a Property, changed some bits in Paint, some others in mouseUp and I was able to compile/run the project.
But no marquee at all.
Now I have to go home.
Thanks for the info Emile, trust that someone would assist.
Thanks again.
Lennox
Here you go Lennox, not my best work as it was a bit quick, you’ll need to put in some error checking etc.
https://www.dropbox.com/s/2qlyc0ntkur8c5b/TestDropOval.xojo_binary_project?dl=1
Thanks Julian,
I can see the multiple marquees now, so I will have to implement that into my original project.
Thanks again.
Lennox
Thanks Julian,
Got it going the way I want.
Thanks again.
Lennox