注册 登录
编程论坛 VB6论坛

各位VB大神,关于label.opition控件求助啊

枫叶魔君jay 发布于 2014-01-08 16:16, 743 次点击
我们编了一个程序主要是完成零件加工的,程序段如下
Private Sub Command4_Click()
GetParam
open_list
outport_bit 1, 1, 0
con_pmove 1, 2000
arc_final 1, 2, 1, 2000, 0, 1000
con_pmove 1, 2000
arc_final 1, 2, -1, 1000, 1000, 1000
con_pmove 2, 2000
arc_final 1, 2, 1, 0, 2000, 1000
con_pmove 2, 2000
arc_final 1, 2, -1, -1000, 1000, 1000
con_pmove 1, -2000
arc_final 1, 2, 1, -2000, 0, 1000
con_pmove 1, -2000
arc_final 1, 2, -1, -1000, -1000, 1000
con_pmove 2, -2000
arc_final 1, 2, 1, 0, -2000, 1000
con_pmove 2, -2000
arc_final 1, 2, -1, 1000, -1000, 1000
outport_bit 1, 1, 1
close_list
End Sub
想在没完成一段的后面加一个label4.caption="直线AB con_pmove 1, 2000 "主要是改变这个中的显示。但是编辑了只显示最后一个label4.caption的内容。我们改的程序如下:
Private Sub Command4_Click()
GetParam
open_list
outport_bit 1, 1, 0
con_pmove 1, 2000
label4.capition="直线AB con_pmove 1, 2000 "
arc_final 1, 2, 1, 2000, 0, 1000
label4.caption="圆弧BC arc_final 1, 2, 1, 2000, 0, 1000 "
con_pmove 1, 2000
label4.opition="直线AB con_pmove 1, 2000 "
arc_final 1, 2, -1, 1000, 1000, 1000
后面每段加工程序后接上相应的label4.caption
con_pmove 2, 2000
arc_final 1, 2, 1, 0, 2000, 1000
con_pmove 2, 2000
arc_final 1, 2, -1, -1000, 1000, 1000
con_pmove 1, -2000
arc_final 1, 2, 1, -2000, 0, 1000
con_pmove 1, -2000
arc_final 1, 2, -1, -1000, -1000, 1000
con_pmove 2, -2000
arc_final 1, 2, 1, 0, -2000, 1000
con_pmove 2, -2000
arc_final 1, 2, -1, 1000, -1000, 1000
outport_bit 1, 1, 1
close_list
End Sub
我们的零件图如下:[local]1[/local] 但是最后只显示最后一个label.caption的内容。如何实现每段的都显示?
大神指教啊。

[ 本帖最后由 枫叶魔君jay 于 2014-1-8 20:47 编辑 ]
11 回复
#2
韶志2014-01-08 19:32
图挂了..
#3
枫叶魔君jay2014-01-08 20:12
回复 2楼 韶志
啥子意思呀?传的图片挂了?
#4
枫叶魔君jay2014-01-08 20:21
只有本站会员才能查看附件,请 登录
#5
bczgvip2014-01-08 21:13
label4.caption= ....
doevents '加个信息响应就行了。顺道问下完成一道处理工序平均多久?
#6
风吹过b2014-01-09 08:32
这个应该是以日志形式来显示。而不是以标签来显示。每道工序过完后,就会把前面的消息给覆盖掉,所以最终看到的只有最后一条信息。

你在窗体上换一个控件吧,如 list1

函数如下:
Public Sub addlog(cs As String)
If List1.ListCount > 99 Then           '保留的日志最大条数,比这里写的直接数要大1。如99,那么就是显示100条。
   List1.RemoveItem 0
End If
List1.AddItem Time & " " & cs
End Sub


调用过程:
这行:label4.opition="直线AB con_pmove 1, 2000 "
换成
call addlog("直线AB con_pmove 1, 2000 ")
或者按你们的简化写法:
addlog "直线AB con_pmove 1, 2000"
#7
枫叶魔君jay2014-01-09 11:00
回复 6楼 风吹过b
谢谢了哈,但是显示还是同一时间显示所有的,不会完成一条在显示
#8
枫叶魔君jay2014-01-09 11:03
回复 5楼 bczgvip
我们试过了,但是还是只显示最后一个。我们这个只是仿真,具体每道工序结束时间是不确定的
#9
枫叶魔君jay2014-01-09 15:53
回复 6楼 风吹过b
高手现在想用VB实现检测 多段连续加工程序中的每一条代码是否在运行,若在执行就利用label.caption=".....该段代码正在执行"例如
Private Sub Command4_Click()
GetParam
open_list
outport_bit 1, 1, 0
con_pmove 1, 2000
arc_final 1, 2, 1, 2000, 0, 1000
con_pmove 1, 2000
arc_final 1, 2, -1, 1000, 1000, 1000
con_pmove 2, 2000
arc_final 1, 2, 1, 0, 2000, 1000
con_pmove 2, 2000
arc_final 1, 2, -1, -1000, 1000, 1000
con_pmove 1, -2000
arc_final 1, 2, 1, -2000, 0, 1000
con_pmove 1, -2000
arc_final 1, 2, -1, -1000, -1000, 1000
con_pmove 2, -2000
arc_final 1, 2, 1, 0, -2000, 1000
con_pmove 2, -2000
arc_final 1, 2, -1, 1000, -1000, 1000
outport_bit 1, 1, 1
close_list
End Sub
现在要检测con_pmove 1, 2000这条是否运行,并返回label.caption="直线AB on_pmove 1, 2000"就是要让label控件显示 直线AB on_pmove 1, 2000
要检测arc_final 1, 2, 1, 2000, 0, 1000这条是否在运行,返回label.caption="圆弧BC arc_final 1, 2, 1, 2000, 0, 1000"
能帮忙解决吗?
#10
风吹过b2014-01-09 16:58
list1 这个框你拉高一点,可以显示多条以上。
运行时就可以看到每条信息的产生以及产生的时间。

整个测试代码:
程序代码:
Option Explicit

Private Sub Command1_Click()

addlog "开始"

'GetParam
'
open_list
'
outport_bit 1, 1, 0

con_pmove 1, 2000
addlog "直线AB con_pmove 1, 2000 "

arc_final 1, 2, 1, 2000, 0, 1000
addlog "圆弧BC arc_final 1, 2, 1, 2000, 0, 1000 "

con_pmove 1, 2000
addlog "直线AB con_pmove 1, 2000 "

arc_final 1, 2, -1, 1000, 1000, 1000
addlog "未知1"

con_pmove 2, 2000
arc_final 1, 2, 1, 0, 2000, 1000
addlog "未知2"

con_pmove 2, 2000
arc_final 1, 2, -1, -1000, 1000, 1000
addlog "未知3"

con_pmove 1, -2000
arc_final 1, 2, 1, -2000, 0, 1000
addlog "未知4"

con_pmove 1, -2000
arc_final 1, 2, -1, -1000, -1000, 1000
addlog "未知5"


con_pmove 2, -2000
arc_final 1, 2, 1, 0, -2000, 1000
addlog "未知6"


con_pmove 2, -2000
arc_final 1, 2, -1, 1000, -1000, 1000
addlog "未知7"


'outport_bit 1, 1, 1
'
close_list

addlog "结束"

End Sub


Public Sub arc_final(cs1 As Long, cs2 As Long, cs3 As Long, cs4 As Long, cs5 As Long, cs6 As Long)
'随机延时
Dim i As Long
Dim j As Long

i = Int(Rnd() * 1000000 + 500)
For j = 1 To i
    DoEvents
Next j

End Sub


Public Sub con_pmove(cs1 As Long, cs2 As Long)
'随机延时

Dim i As Long
Dim j As Long

i = Int(Rnd() * 1000000 + 500)
For j = 1 To i
    DoEvents
Next j

End Sub

Public Sub addlog(cs As String)
If List1.ListCount > 99 Then           '保留的日志最大条数,比这里写的直接数要大1。如99,那么就是显示100条。
   List1.RemoveItem 0
End If
List1.AddItem Time & " " & cs
End Sub





只有本站会员才能查看附件,请 登录
#11
枫叶魔君jay2014-01-09 19:12
回复 10楼 风吹过b
非常感谢,这么辛苦的帮忙测试和解答。我们明天去测试一下
#12
Artless2014-01-14 13:40
1