Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
4-1080579089
ботинок
2004-03-29 20:51
2004.05.23
окно типа аськи


4-1081171300
rimd
2004-04-05 17:21
2004.05.23
Как определить путь к программе...


1-1083806272
Funnymind
2004-05-06 05:17
2004.05.23
Удаление папки


9-1074102294
HolyMan
2004-01-14 20:44
2004.05.23
Где взять обновления GLScene?


14-1083483352
kldstat
2004-05-02 11:35
2004.05.23
Отпуск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский