Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programmierung eines Farbverlaufs (https://www.delphipraxis.net/10974-programmierung-eines-farbverlaufs.html)

DelphiUser7 28. Okt 2003 21:26


Programmierung eines Farbverlaufs
 
Hi,
hat einer von euch ne Ahnung, wie ich einen Farbverlauf proggen kann; ich hab nämlich hier schon alles abgesucht, aber nirgendwo ist eine Anleitung oder ein Beitrag, wo drin steht, wie ich einen ganz normalen Farbverlauf, von einer Farbe in eine andere Farbe, proggen kann; :wall: :wall:

DelphiUser7

Chewie 28. Okt 2003 21:29

Re: Programmierung eines Farbverlaufs
 
Überleg mal so: Farben werden als Kombination von roten, grünen und blauen Farbwerten dargestellt, jeweils als Zahlen zw. 0 und 255. Mit einer Schleife kannst du die Komponentenwerte erhöhen und dann die zugehörige Farbe anzeigen.

Mirilin 28. Okt 2003 21:32

Re: Programmierung eines Farbverlaufs
 
:hi: nochmals

Delphi-Quellcode:
var
* i* : Integer;
* s : array[0..2] of Byte;
* e : array[0..2] of Byte;
* d : array[0..2] of single;
begin
* s[0] := GetRValue(Color1);
* s[1] := GetGValue(Color1);
* s[2] := GetBValue(Color1);
* e[0] := GetRValue(Color2);
* e[1] := GetGValue(Color2);
* e[2] := GetBValue(Color2);
* for i := low(s) to high(s) do d[i] := (e[i]-s[i]) / Width;
* for i := 0 to Width do
* begin
* * Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]),
* * * * * * * * * * * * * * *Round(s[1] + i * d[1]),
* * * * * * * * * * * * * * *Round(s[2] + i * d[2]) );
* * Canvas.MoveTo(i,0);
* * Canvas.LineTo(i,Height);
* end;
end;

DelphiUser7 29. Okt 2003 09:14

Re: Programmierung eines Farbverlaufs
 
Vielen Dank;
habs gerade getestet, und es funzt!;

Gruss
DelphiUser7

DelphiUser7 30. Okt 2003 12:24

Re: Programmierung eines Farbverlaufs
 
Ja, das war jetzt horizontal, what about 'vertikal'?;
Ich hab schon mal probiert, was passiert, wenn ich einfach überall das Gegenteil, also anstatt Height 'Width' reinschreibe; dann zeigt er mir eine bunt colorierte Leiste an, aber keinen vertikalen Farbverlauf;

DelphiUser7

Mirilin 30. Okt 2003 17:32

Re: Programmierung eines Farbverlaufs
 
:hi:

Delphi-Quellcode:
 for i := 0 to Height do
 begin
  Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]), Round(s[1] + i * d[1]), Round(s[2] + i * d[2]) );
  Canvas.MoveTo(0,i);
  Canvas.LineTo(Width,i);
 end;

Alex_ITA01 2. Dez 2003 11:10

Re: Programmierung eines Farbverlaufs
 
mal ne frage zu diesem source:
Delphi-Quellcode:
var
  i : Integer;
  s : array[0..2] of Byte;
  e : array[0..2] of Byte;
  d : array[0..2] of single;
begin
  s[0] := GetRValue(clred);
  s[1] := GetGValue(clgreen);
  s[2] := GetBValue(clblue);
  e[0] := GetRValue(clred);
  e[1] := GetGValue(clgreen);
  e[2] := GetBValue(clblue);
  for i := low(s) to high(s) do d[i] := (e[i]-s[i]) / Width;
  for i := 0 to Width do
  begin
    Form1.Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]),
                             Round(s[1] + i * d[1]),
                             Round(s[2] + i * d[2]) );
    Form1.Canvas.MoveTo(i,0);
    Form1.Canvas.LineTo(i,Height);
  end;
und zwar hab ich den bei form.create reingebracht aber es passiert nix mit der farbe.was muss ich hier ändern?
danke alex

Matze 2. Dez 2003 11:14

Re: Programmierung eines Farbverlaufs
 
Gib es einfach in das OnPaint-Ereignis.

Alex_ITA01 2. Dez 2003 11:15

Re: Programmierung eines Farbverlaufs
 
ok danke geht

Mirilin 2. Dez 2003 11:17

Re: Programmierung eines Farbverlaufs
 
:hi:

Mal den Verluaf doch auf ein Bitmap, und kopiere dieses beim OnPaint der Form auf das Canvas der selbigen (oder male es jedesmal im onpaint).

was ähnliches gibts hier

mfg Tobias


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz