Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Draw line on picture

3 views
Skip to first unread message

Rick Rothstein

unread,
Mar 22, 2005, 10:05:16 AM3/22/05
to
> Ive to draw a line on a picture i used this code:
>
> .....<code snipped>.....
>
> But i doesnt draw on the picture, only on the form??/
> Can someone help me with this??

Where is the picture? In a PictureBox that is on the form? If so, then
you have to place the Line control INSIDE of the PictureBox. There are
two ways to do this.

First method... after placing the Line control on the form by
double-clicking it from the ToolBox, cut it from the Form by selecting
it (if not already selected) and then pressing Ctrl+X, then select the
PictureBox and paste the Line control into it by pressing Ctrl+V.

Second method... don't double-click the Line control in the first place;
instead, click on it once in the ToolBox to select it, then click and
drag the mouse directly in the PictureBox to place the Line control
directly within the PictureBox.

Rick - MVP

Dennis

unread,
Mar 22, 2005, 7:40:08 AM3/22/05
to
Hello,

Ive to draw a line on a picture i used this code:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
x1 = z.X
y1 = z.Y
lbl3 = "x1: " & x1
lbl4 = "y1: " & y1
With Line1
.Visible = True
.x1 = X
.y1 = Y
.x2 = X
.y2 = Y
Drawing = True
End With
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Drawing Then
With Line1
.x2 = X
.y2 = Y
End With
End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As
Single, Y As Single)
x2 = z.X
y2 = z.Y
lbl5 = "x2: " & x2
lbl6 = "y2: " & y2
Drawing = False
With Line1
Me.Line (.x1, .y1)-(.x2, .y2)
.Visible = False
End With
End Sub


But i doesnt draw on the picture, only on the form??/
Can someone help me with this??

Thx in advance

Dennis

Dennis

unread,
Mar 23, 2005, 3:41:22 AM3/23/05
to
I started a new thread because i cant reply on the older one.

Thank you very much Rick for the usefull reply. But i'v got another
question. When drawing the line, you cant see the line untill you
release the mouse button. I want to see the line when im drawing!!
Im using the following code:

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X


As Single, Y As Single)
x1 = z.X
y1 = z.Y
lbl3 = "x1: " & x1
lbl4 = "y1: " & y1
With Line1
.Visible = True
.x1 = X
.y1 = Y
.x2 = X
.y2 = Y
Drawing = True
End With
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X


As Single, Y As Single)
If Drawing Then
With Line1
.x2 = X
.y2 = Y
End With
End If

End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As


Single, Y As Single)
x2 = z.X
y2 = z.Y
'lbl5 = "x2: " & x2
'lbl6 = "y2: " & y2
Drawing = False
With Line1

Picture1.Line (.x1, .y1)-(.x2, .y2), vbGreen


.Visible = False
End With
End Sub

Can someone help me with this??


Dennis

Rick Rothstein

unread,
Mar 23, 2005, 9:26:17 AM3/23/05
to
> Thank you very much Rick for the usefull reply. But i'v got another
> question. When drawing the line, you cant see the line untill you
> release the mouse button. I want to see the line when im drawing!!
> Im using the following code:
>
> Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X
> As Single, Y As Single)
> x1 = z.X
> y1 = z.Y
> ......<rest of code snipped>......

I couldn't run your code because I don't know what "z" is (although it
apparently has an X and Y property). Anyway, below is some code that
will show the line as you draw it. It uses a Line control that is IN the
PictureBox (use one of the two previously methods I posted to place it
inside). You can copy/paste it exactly as is, although note that I used
line continuations for the Sub's event declarations in order to avoid
long line wrapping in your newsreader (you can change them back to
single lines if you wish).

Rick - MVP

Dim LineIsActive As Boolean

Private Sub Picture1_MouseDown(Button As Integer, _


Shift As Integer, X As Single, Y As Single)

With Line1
If Not .Visible Then .Visible = True
LineIsActive = True
.X1 = X
.Y1 = Y
.X2 = X
.Y2 = Y
End With
End Sub

Private Sub Picture1_MouseMove(Button As Integer, _


Shift As Integer, X As Single, Y As Single)

If LineIsActive Then
With Line1
.X2 = X
.Y2 = Y


End With
End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, _


Shift As Integer, X As Single, Y As Single)

LineIsActive = False
With Line1
.X2 = X
.Y2 = Y
End With
End Sub


0 new messages