注册 登录
编程论坛 VB6论坛

单击command一次,画出一根线,再单击一次,再画出下一根线

小懒889 发布于 2013-03-25 15:53, 931 次点击
在command的单击事件中,编写代码,画一根线,还有其他的公式画第二根,但是我把其他的代码输入,单击command,两根就一起出来了,不能单击一下出一根
我想要单击command一次,画出一根线,再单击一次,再画出下一根线
10 回复
#2
xbj_hyml2013-03-25 16:55
不太明白你的意思,每条线之间的关系是怎样的?
    能不能附上一段代码 看下...
#3
风吹过b2013-03-25 17:06
dim linejs as long

private command1_click()
if linejs=0 then
   call line1    '画第一根线
   linejs=1
elseif linejs=1 then
   call line2    '画第二根线
   linejs=2
else
   '如果还有第三根线,第四根,按照 画第二根线的增加,或者改成 select case 的模式
end if
end sub
#4
lcs199709062013-03-25 18:56
好像没什么问题。
#5
小懒8892013-03-27 10:11
回复 3楼 风吹过b
我是用Picture1.Line (0, t)-(x4, y4)这个画直线的,这个怎么编写代码呢?谢谢啦
#6
小懒8892013-03-27 10:12
回复 2楼 xbj_hyml
Dim x4, y4 As Single
    t = -20
    Pq = Pk(t)
    x4 = 622 * Pq / (101325 - Pq)
    y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
    If x4 <= 42 And y4 <= 65 Then
       Picture1.Line (0, t)-(x4, y4), vbBlack
    ElseIf x4 > 42 And y4 < 65 Then
       x4 = 42
       y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
     Picture1.Line (0, t)-(x4, y4), vbBlack
    ElseIf y4 > 65 Then
       y4 = 65
       x4 = (y4 - t) * 2000 / (500 + 1.84 * t)
        If x4 > 42 Then
          x4 = 42
          y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
          Picture1.Line (0, t)-(x4, y4), vbBlack
       Else
       Picture1.Line (0, t)-(x4, y4), vbBlack
       End If
    End If
这是我那一根线的代码,下一根就是把t=-20改成t=-19
#7
风吹过b2013-03-27 10:46
dim linejs as long

private command1_click()
if linejs=0 then
   call  fx(-20)    '画第一根线
   linejs=1
elseif linejs=1 then
   call fx(-19)    '画第二根线
   linejs=2
else
   '如果还有第三根线,第四根,按照 画第二根线的增加,或者改成 select case 的模式
end if
end sub

private  sub fx(t as long)
Dim x4, y4 As Single
   
    Pq = Pk(t)
    x4 = 622 * Pq / (101325 - Pq)
    y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
    If x4 <= 42 And y4 <= 65 Then
       Picture1.Line (0, t)-(x4, y4), vbBlack
    ElseIf x4 > 42 And y4 < 65 Then
       x4 = 42
       y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
     Picture1.Line (0, t)-(x4, y4), vbBlack
    ElseIf y4 > 65 Then
       y4 = 65
       x4 = (y4 - t) * 2000 / (500 + 1.84 * t)
        If x4 > 42 Then
          x4 = 42
          y4 = t + x4 / 2000 * (2500 + 1.84 * t) - x4
          Picture1.Line (0, t)-(x4, y4), vbBlack
       Else
       Picture1.Line (0, t)-(x4, y4), vbBlack
       End If
    End If
end sub
#8
小懒8892013-03-27 11:01
回复 7楼 风吹过b
谢谢,可是还是两根一起出来啊!
#9
xbj_hyml2013-03-27 11:54
Private Sub Command1_Click()
    Static num As Integer
    If num Mod 2 = 0 Then
        Picture1.Line (0, num * 30)-(Picture1.Width, num * 30), vbRed
    Else
        Picture1.Line (0, num * 30)-(Picture1.Width, num * 30), vbGreen
    End If
    num = num + 1
End Sub
----------------你试试这段代码效果,是不是要这样?
如果是按 风吹过B 的代码,那也不会出现 点击一次 有2根线 ,除非你放在了循环里面

#10
小懒8892013-03-27 13:35
回复 7楼 风吹过b
谢谢啦,是我弄错了,代码是正确的,谢谢啦,
#11
小懒8892013-03-27 13:36
回复 9楼 xbj_hyml
嗯,刚才是我弄错了,代码是正确的!谢谢啦
1