delphi 动态字幕~~~~

delphi 动态字幕~~~~,第1张

你这个if (label1.Height+label1.Top)<panel1.Top then

label1.Top:=panel1.Top+panel1.Height

有问题吧,label1是在panel里面吗?是的话,就有问题了。

如果你需要的效果是,label1 在panel1里面,从下往上跑,到顶从下面重新跑的话,那这句就要改成 if label1.top <=0 then

label1.Top:=panel1.Height-label1.height

就可以实现循环从下到上移动显示

我在机子上测试过的,OK的话希望采纳

在form上放置一个标签,标签上写欢迎词

然后设置个时钟,让标签每秒向左滚动一定像素就好了

Timer控件的Interval设为20,OnTimer事件代码如下

procedure TForm1.Timer1Timer(Sender: TObject)

begin

Label1.Left := Label1.Left - 1

if Label1.Left + Label1.Width = 0 then

Label1.Left := Form1.Width

end

设置窗体标题为“流动字幕板”。

添加标签组件,设置标题为“hello,everyone”,将visible属性设置false。

添加d出式菜单,添加“从左下到右上”、“从右下到左上”、“停止”、“退出”四个菜单项,并设置菜单项中加速键和快捷键。

添加时钟组件,将Enable设置为False。

5. 编写代码如下:

//在  public 段,添加    ChioceType: Integer

procedure TForm1.mniExitClick(Sender: TObject)

begin

  Close

end

procedure TForm1.mniLeftToRightClick(Sender: TObject)

begin

  Timer1.Enabled := False

  ChioceType := 1

  Timer1.Enabled := True

end

procedure TForm1.mniRightToLeftClick(Sender: TObject)

begin

  Timer1.Enabled := False

  ChioceType := 2

  Timer1.Enabled := True

end

procedure TForm1.mniStopClick(Sender: TObject)

begin

  Timer1.Enabled := False

end

procedure TForm1.Timer1Timer(Sender: TObject)

var curX,curY: Integer

begin

  if ChioceType = 1 then

  begin

    //从左下到右上

    curX := Label1.Left + 5

    if curX > Width-Label1.Width then curX := Width-Label1.Width

    curY := Label1.Top - 5

    if curY < 5 then curY := 5

  end

  else if ChioceType = 2 then

  begin

    //从右下到左上

    curX := Label1.Left - 5

    if curX < 5 then curX := 5

    curY := Label1.Top - 5

    if curY < 5 then curY := 5

  end

  Label1.Left := curX

  label1.Top := curY

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11437496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存