如何用任竟两种颜色实现文字的渐变效果(100分)

  • 主题发起人 主题发起人 J2EE
  • 开始时间 开始时间
J

J2EE

Unregistered / Unconfirmed
GUEST, unregistred user!
//我用下面的方法只能简单的实现.

procedure TForm1.FormPaint(Sender: TObject);
var
r: TRect;
hRgn: Integer;
i, j: Integer;
n: Double;
c: TColor;
begin
BeginPath(Canvas.Handle);
r := GetClientRect;
Canvas.Brush.Style := bsClear;
Canvas.Font.Size := 60;
DrawText(Canvas.Handle, 'YWBTAXI@YEAH.NET', -1, r, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
EndPath(Canvas.Handle);
hRgn := PathToRegion(Canvas.Handle);
GetRgnBox(hRgn, r);

n := (r.Right - r.Left) / 255;
for i := r.Left to r.Right do
begin
for j := r.Top to r.Bottom do
if PtInRegion(hRgn, i, j) then
begin
if n <= 1 then
c := RGB(255, (i - r.Left), 0)
else
c := RGB(255, Round((i - r.Left) / n), 0);
Canvas.Pixels[i, j] := c
end;
end;
end;
 
嘻嘻
不paint的话可以这样

procedure TForm1.Button1Click(Sender: TObject);
var
a,b:integer;
begin
label2.Width:=0;
for a:=1 to label1.Width do begin
for b:=1 to 1000 do Application.ProcessMessages;
label2.Width:=label2.Width+1;
end;
end;
 
老大,我需要的是用GDI画呀.,
 
大哥我这样回答明显是灌水嘛

这种代码网上一大堆的,给我你的email,我给你一个搜集的专门字体特效包
 
好,ywbtaxi@yeah.net
 
亲爱的网易邮箱用户:
抱歉的通知您,您的邮件无法投递到目的地址.
下面是系统返回的错误原因(例如:收件人地址不正确,信箱满或此信被对方拒收).
必要时您可跟对方或对方管理员联系.
网易邮件事业部
To: ywbtaxi@yeah.net <ywbtaxi@yeah.net>
Subject: 如何用任竟两种颜色实现文字的渐变效果
Date: Tue4 Feb 2003 23:5:44 +0800
 
接受答案了.
 
后退
顶部