Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизКак плавно менять цвет? Найти похожие ветки
← →
MaD (2004-05-05 10:28) [0]Например цвет панели, или цвет текста,
чтобы создавался эффект переливания, типа.
← →
Gero © (2004-05-05 10:29) [1]На сайте есть хорошая статья на эту тему.
← →
Андрей Сенченко © (2004-05-05 10:29) [2]R(0..255)
G(0..255)
B(0..255)
← →
Семен Сорокин © (2004-05-05 10:30) [3]GradientFill + F1 (2000, XP)
← →
Gero © (2004-05-05 10:37) [4]Вот статья:
http://www.delphimaster.ru/articles/grad/index.html
← →
MaD (2004-05-05 10:42) [5]>>Gero где копать, то? Если помнишь слова из названия, скажи, plz
>>Андрей Сенченко куда вставлять эти RGB?
>>Семен Сорокин GradientFill не подойдет, надо чтоб в 98 работало
Вот с RGB думаю разобраться надо
← →
Андрей Сенченко © (2004-05-05 10:51) [6]Я так делал
function RGBStringToColor(S : string) : TColor;
var
r,g,b : byte;
begin
r := 0; g := 0; b := 0;
with TStringList.Create do
try
Text := StringReplace(S, ".", #13#10, [rfReplaceAll]);
r := StrToIntDef(Strings[0],0);
g := StrToIntDef(Strings[1],0);
b := StrToIntDef(Strings[2],0);
finally
Result := RGB (r,g,b);
Free
End;
end;
Пример использованя:SomeObject.Color := RGBStringToColor (0.255.255);
← →
Андрей Сенченко © (2004-05-05 10:53) [7]Цикл или иную формулу смены цветов организовать, я думаю, сумеешь.
← →
pasha_golub © (2004-05-05 11:24) [8]
procedure VGradientFill(ACanvas: TCanvas; ARect: TRect;
FromColor, ToColor: TColor);
var
FC: array [0..3] of byte absolute FromColor;
TC: array [0..3] of byte absolute ToColor;
Steps, Y: integer;
DR, DG, DB: byte;
begin
Steps := ARect.Bottom - ARect.Top - 2;
if Steps <= 0 then Exit;
FromColor := ColorToRGB(FromColor);
ToColor := ColorToRGB(ToColor);
DR := Byte(trunc((TC[0] - FC[0])/Steps));
DG := Byte(trunc((TC[1] - FC[1])/Steps));
DB := Byte(trunc((TC[2] - FC[2])/Steps));
for Y := ARect.Top + 1 to ARect.Bottom - 1 do
with ACanvas do
begin
inc(FC[0],DR);
inc(FC[1],DG);
inc(FC[2],DB);
MoveTo(ARect.Left, Y);
Pen.Color := FromColor;
LineTo(ARect.Right,Y);
end;
end;
procedure HGradientFill(ACanvas: TCanvas; ARect: TRect;
FromColor, ToColor: TColor);
var
FC: array [0..3] of byte absolute FromColor;
TC: array [0..3] of byte absolute ToColor;
Steps, X: integer;
DR, DG, DB: byte;
begin
Steps := ARect.Right - ARect.Left - 2;
if Steps <= 0 then Exit;
FromColor := ColorToRGB(FromColor);
ToColor := ColorToRGB(ToColor);
DR := Byte(trunc((TC[0] - FC[0])/Steps));
DG := Byte(trunc((TC[1] - FC[1])/Steps));
DB := Byte(trunc((TC[2] - FC[2])/Steps));
for X := ARect.Left + 1 to ARect.Right - 1 do
with ACanvas do
begin
inc(FC[0],DR);
inc(FC[1],DG);
inc(FC[2],DB);
MoveTo(X,ARect.Top);
Pen.Color := FromColor;
LineTo(X,ARect.Bottom);
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c