Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Как плавно менять цвет?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
9-1074018567
falc0n
2004-01-13 21:29
2004.05.23
2D в Direct3D8


1-1084103434
Liona
2004-05-09 15:50
2004.05.23
Ребята мастера помогите с лаблраторной...


3-1082730096
Хохол
2004-04-23 18:21
2004.05.23
Одновременная работа пользователей с БД Access.


4-1080815352
Midaw
2004-04-01 14:29
2004.05.23
Как узнать информацию о ярлыке по пути его нахождения ?


9-1073465597
mad0max
2004-01-07 11:53
2004.05.23
GLScene - Дырка :)