📄 klokpas.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 + -