标题:如何用vb实现如下功能啊?求高手们指导,实在感激不尽!!!
只看楼主
滇之东北
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-26
结帖率:100%
已结贴  问题点数:20 回复次数:11 
如何用vb实现如下功能啊?求高手们指导,实在感激不尽!!!
我想用vb窗口来显示当前单片机所读出来的温度,然后根据温度判断不同颜色的灯亮,我是这样写的,
Private Sub MSComm1_OnComm()
    Dim rec As String
    Select Case
    Case comEvReceive
        rec = MSComm1.Input
        Text2.Text = rec + ℃
        MSComm1.InBufferCount = 0
    If ("25" <= (Text2.Text) < "27") Then
        Shape1.BackStyle = 1
        Shape1.BackColor = vbGreen
    End If
    If ("27" <= Text2.Text < "29") Then
        Shape2.BackStyle = 1
        Shape2.BackColor = vbGreen
    End If
    If (Text2.Text >= "29") Then
        Shape3.BackStyle = 1
        Shape3.BackColor = vbGreen
    End If
    End Select
End Sub
可是怎么都不按要求来执行啊。

在温度低于29摄氏度的时候还是第三个灯亮,改变温度,都只是第三个灯在亮,我是新手,求高手们指导,感激不尽。
搜索更多相关主题的帖子: 如何 
2013-05-26 16:26
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:324
专家分:435
注 册:2012-1-29
得分:2 
要先把text2中的“℃”去掉才呢过判断吧?你不如直接把“rec”变量值代替text2的值进行判断来的方便吧

学习--------------学习-------------------学习--------------------!!
2013-05-26 18:01
滇之东北
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-26
得分:0 
回复 2楼 wxflw
还是不行,还是和原来一样的效果。
2013-05-26 19:13
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
得分:1 
If (rec>= "29") Then

无知
2013-05-26 19:44
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:324
专家分:435
注 册:2012-1-29
得分:1 
那个25.29.27这几个数值还要用引号吗?我遇到直接给的数值都不用引号引起来的,直接处理那个变量


试试这一个看
 rec = format(MSComm1.Input)
        Text2.Text = rec + ℃
        MSComm1.InBufferCount = 0
    If 25 <= rec < 27 Then
        Shape1.BackStyle = 1
        Shape1.BackColor = vbGreen
    End If

[ 本帖最后由 wxflw 于 2013-5-26 20:10 编辑 ]

学习--------------学习-------------------学习--------------------!!
2013-05-26 19:55
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:324
专家分:435
注 册:2012-1-29
得分:2 
版主,为什么那个判断要用()这个啊?

学习--------------学习-------------------学习--------------------!!
2013-05-26 20:11
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
得分:2 
Private Sub MSComm1_OnComm()
    Dim rec As String
    dim fTemp as double
    Select Case
    Case comEvReceive
        rec = MSComm1.Input '还有其他参数吧?
        fTemp = val(rec)
        Text2.Text = rec + ℃ '你确定这个没错么?或是变量?
        MSComm1.InBufferCount = 0
    If (25 <= (fTemp) < 27) Then
        Shape1.BackStyle = 1
        Shape1.BackColor = vbGreen
    End If
    If (27 <= fTemp < 29) Then
        Shape2.BackStyle = 1
        Shape2.BackColor = vbGreen
    End If
    If (fTemp >= 29) Then
        Shape3.BackStyle = 1
        Shape3.BackColor = vbGreen
    End If
    End Select
End Sub
2013-05-26 20:28
滇之东北
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-26
得分:0 
回复 7楼 bczgvip
谢谢版主,通过您给的程序改进,有了一些效果,当温度低于29摄氏度处于27-29摄氏度之间,第三个灯不亮了,而此时第一个灯还在亮,是怎么回事呢?效果图为
,非常感谢版主,我是新手,忘版主多多指教。
2013-05-27 09:49
滇之东北
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-5-26
得分:0 
回复 5楼 wxflw
很感谢您的帮助,可是弄了之后还是没啥变化,真心谢谢您的帮助。
2013-05-27 09:51
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
得分:2 
以下是引用bczgvip在2013-5-26 20:28:02的发言:

Private Sub MSComm1_OnComm()
    Dim rec As String
    dim fTemp as double
    Select Case
    Case comEvReceive
        rec = MSComm1.Input '还有其他参数吧?
        fTemp = val(rec)
        Text2.Text = rec + ℃ '你确定这个没错么?或是变量?
        MSComm1.InBufferCount = 0
    If (25 <= (fTemp) < 27) Then
        Shape1.BackStyle = 1
        Shape1.BackColor = vbGreen
        Shape2.BackStyle = 0
        Shape3.BackStyle = 0
        Shape2.BackColor =-2147483633
        Shape3.BackColor =-2147483633
    End If
    If (27 <= fTemp < 29) Then
        Shape2.BackStyle = 1
        Shape2.BackColor = vbGreen
        Shape1.BackStyle = 0
        Shape3.BackStyle = 0
        Shape1.BackColor =-2147483633
        Shape3.BackColor =-2147483633
    End If
    If (fTemp >= 29) Then
        Shape3.BackStyle = 1
        Shape3.BackColor = vbGreen
        Shape1.BackStyle = 0
        Shape2.BackStyle = 0
        Shape1.BackColor =-2147483633
        Shape2.BackColor =-2147483633
    End If
    End Select
End Sub
忘了是字符的

无知
2013-05-27 13:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-408813-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.874865 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved