⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 klokpas.pas

📁 有关多媒体的各个细节
💻 PAS
字号:
unit KLOKPas;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

const   OneSecond=0.0000001;//常量
type
  TForm1 = class(TForm)
    Panel2: TPanel;
    PaintBox1: TPaintBox;
    PaintBox2: TPaintBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    SaveDisPlayStr:String;//保存显示文字
    Rect0,Rect1:TRect;       {限定文字显示的矩形数据结构变量}
    StopFlag:boolean;         {控制循环显示的逻辑变量}
    procedure DisplayText(WayFlag:Integer;DisPlayStr:String);//显示文字
    procedure Delay(ltime:longint);//延时
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//延时
procedure TForm1.Delay(ltime:longint);
var
  ltimebegin:double;
  ltimelong:double;
begin
  ltimebegin:=time;
  ltimelong:=OneSecond*ltime;
  repeat
  until (time-ltimebegin)>ltimelong;
end;

//文字显示处理
procedure TForm1.DisplayText(WayFlag:Integer;DisPlayStr:String);
var
 i:integer;
begin
 {设置下层画笔}
 PaintBox1.Canvas.Brush.Color:=clWhite;
 PaintBox1.canvas.brush.style:=bsclear;
 PaintBox1.Canvas.Font.Size:=24;
 PaintBox1.Canvas.Font.Color:=clBlue;

 {设置上层画笔}
 PaintBox2.Canvas.Brush.Color:=clWhite;
 PaintBox2.canvas.brush.style:=bsclear;
 PaintBox2.Canvas.Font.Size:=24;
 PaintBox2.Canvas.Font.Color:=clRed;

 {限定下层显示区域}
 Rect0:=Rect(0,0,PaintBox2.width,PaintBox2.Height);
 Paintbox1.Canvas.FillRect(Rect0);

 case WayFlag of
  0://清除显示
     begin
      PaintBox1.Canvas.Font.Color:=clBtnFace;
      PaintBox2.Canvas.Font.Color:=clBtnFace;
      PaintBox1.Canvas.Textout(0,0,DisplayStr);{显示下层文字}
      PaintBox2.Canvas.Textout(0,0,DisplayStr);{显示上层文字}
     end;
  1,2://文字显示,1是“卡拉OK字幕”,2是“招牌文字”
      begin
       StopFlag:=True;
       SaveDisPlayStr:=DisPlayStr;
        {循环移动}
       i:=-20;
       repeat
        if i=PaintBox2.width then i:=-20;
        i:=i+1;
        Delay(1);{延时一秒}
        if WayFlag=1 then//是“卡拉OK字幕”
          Rect1:=Rect(0,0,i+10,PaintBox2.Height){改变上层显示区域大小}
        else//是“招牌文字”
          Rect1:=Rect(i+10,0,i+50,PaintBox2.Height);{改变上层显示区域位置}

        PaintBox1.Canvas.Textout(0,0,DisplayStr);{显示下层文字}
        Paintbox2.Canvas.FillRect(Rect1);{限定上层显示区域}
        PaintBox2.Canvas.TextRect(Rect1,0,0,DisplayStr);{显示上层文字}
        Application.ProcessMessages;{响应其他消息}
       until StopFlag=False;
      end;
 end;
end;

//窗体创建时,初始化程序
procedure TForm1.FormCreate(Sender: TObject);
begin
 StopFlag:=False;
end;

// 卡拉“OK”字幕
procedure TForm1.Button1Click(Sender: TObject);
begin
 DisplayText(0,SaveDisPlayStr);
 DisplayText(1,'卡拉OK字幕');
end;

//程序退出
procedure TForm1.Button4Click(Sender: TObject);
begin
 StopFlag:=False;
 Close;
end;

// 招牌文字
procedure TForm1.Button2Click(Sender: TObject);
begin
 DisplayText(0,SaveDisPlayStr);
 DisplayText(2,'招牌文字');
end;

//停止移动
procedure TForm1.Button3Click(Sender: TObject);
begin
 StopFlag:=False;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -