delphi Image上文字平滑移动  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi Image上文字平滑移动


var
Form1: TForm1;
MaxTxtWindth,Y:Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered := True;
Y := Image1.ClientWidth;
MaxTxtWindth :=Image1.Canvas.TextWidth('dg');
Image1.Transparent := True; //可以加个背景
Image1.Canvas.Font.Color:=clRed;
Timer1.Interval := 30;
Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
TxtLinePosY:Integer;
MyStr:WideString;
TemStr:String;
begin
Image1.Canvas.FillRect(Image1.ClientRect);
TxtLinePosY:= Y;
mystr:=edit2.Text;
for i:=1 to Length(MyStr) do
begin
Inc(TxtLinePosY,MaxTxtWindth);
TemStr:=MyStr[i];
if Ord(TemStr[1]) > 128 then
begin
MaxTxtWindth:=Image1.Canvas.TextWidth('aa');
end
else
MaxTxtWindth:=Image1.Canvas.TextWidth('a');
if (TxtLinePosY < -MaxTxtWindth)or(TxtLinePosY > Image1.ClientWidth) then
Continue
else
begin
Image1.Canvas.TextOut(TxtLinePosY,0,mystr[i]);
end;
end;
Dec(Y);
if Y < -Length(MyStr)* MaxTxtWindth then
Y := Image1.ClientWidth;
end;
推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.041714906692505 seconds