标题:求大神帮解决(滚动字幕)
只看楼主
wangsiraaa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-11-28
结帖率:0
已结贴  问题点数:20 回复次数:5 
求大神帮解决(滚动字幕)
参照程序效果图进行界面设计;将“首届世界互联网大会”字幕从左到右进行循环滚动。要求:(1)程序运行的初始状态是字幕“首届世界互联网大会”从左到右水平循环滚动,并在滚动过程中,字幕颜色红、蓝交替变换显示;(2)点击“演示”按钮,重回程序初始状态;(3)点击“暂停”按钮,字幕暂停,按钮名称变为“开始”;点击“开始”按钮,字幕继续滚动,按钮名称变为“暂停”;(4)点击“退出”按钮,弹出提示框,点击确认退出程序。
搜索更多相关主题的帖子: 滚动 字幕 点击 按钮 暂停 
2017-11-28 10:17
xyxcc177
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:26
帖 子:197
专家分:1249
注 册:2017-7-8
得分:7 
放入一个时间控件,然后让文本标签的left逐渐增大就可以实现.
2017-11-28 17:53
wangsiraaa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-11-28
得分:0 
回复 2楼 xyxcc177
有2个标签的,第一个标签移到最右边时,另外一个标签要从左边开始进入。也就是要求右边移出去的字要在左边显示出来。我不知道这么表达您能理解不。
2017-11-29 08:01
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:7 
以下是引用wangsiraaa在2017-11-29 08:01:19的发言:

有2个标签的,第一个标签移到最右边时,另外一个标签要从左边开始进入。也就是要求右边移出去的字要在左边显示出来。我不知道这么表达您能理解不。


只要1个标签,到了最右边时,就移到最左边还没出现时。

大概就是这样写的,你要转换成具体的对象和属性
if 标签.left >=窗体.宽度 then 标签.left= -标签.宽度

突然发现,你是直接显示在窗体上的。修改编辑一下。


授人于鱼,不如授人于渔
早已停用QQ了
2017-11-29 08:33
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:7 
xs.rar (6.23 KB)

你试试,源代码如下:
Public bz

Private Sub Form_Load()
   Form_Resize
  Command2.Caption = "暂停"
  bz = 0
  Timer1.Interval = 500
End Sub

Private Sub Form_Resize()
  width1 = Form1.Width
  hight1 = Form1.Height
  Command1.Top = hight1 - 900
  Command2.Top = hight1 - 900
  Command3.Top = hight1 - 900
  Command1.Left = 0
  Command2.Left = Int(width1 / 3)
  Command3.Left = Int(width1 / 3) * 2
  Command1.Width = Int(width1 / 3)
  Command2.Width = Int(width1 / 3)
  Command3.Width = Int(width1 / 3)
  Label1.Top = hight1 / 2 - 500
  Label1.Left = width1 / 2 - 2000
End Sub

Private Sub Command1_Click()
  Form_Resize
  Timer1.Interval = 500
End Sub

Private Sub Command2_Click()
 If Command2.Caption = "暂停" Then
   Timer1.Interval = 0
   Command2.Caption = "开始"
  Else
   Timer1.Interval = 500
   Command2.Caption = "暂停"
  End If
End Sub
Private Sub Command3_Click()
  MsgBox "按确定退出", 0, ""
  End
End Sub

Private Sub Timer1_Timer()
  Select Case bz
  Case 0:
    Label1.ForeColor = vbRed
    If Label1.Left + Label1.Width > Form1.Width Then
      Label1.Left = 0
    Else
      Label1.Left = Label1.Left + 300
    End If
    bz = 1
  Case 1:
    Label1.ForeColor = vbBlue
    If Label1.Left + Label1.Width > Form1.Width Then
      Label1.Left = 0
    Else
      Label1.Left = Label1.Left + 300
    End If
    bz = 0
  End Select
End Sub



[此贴子已经被作者于2017-11-29 20:06编辑过]

2017-11-29 20:01
wangsiraaa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-11-28
得分:0 
12


[此贴子已经被作者于2017-12-15 07:43编辑过]

2017-12-15 07:42



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




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

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