Главная страница
    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.46 MB
Время: 0.035 c
1-1083847521
Алексей Петухов
2004-05-06 16:45
2004.05.23
Своя панель как Compotent Palette из Delphi


3-1083225065
Av
2004-04-29 11:51
2004.05.23
Необх из Grida записывать в базу симв знач с сохр пробелов слева


1-1084275657
prockrut
2004-05-11 15:40
2004.05.23
Как заставить приложение что-либо делать, когда окно получает фок


14-1083526687
Piter
2004-05-02 23:38
2004.05.23
Пропаганда пива


11-1071838359
SAGE
2003-12-19 15:52
2004.05.23
Ошибка: already in skipping mode.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский