![]() |
Re: Animierter Farbverlauf
Liste der Anhänge anzeigen (Anzahl: 1)
Nochmal, ich denke er möchte so etwas wie im Anhang (schnell dahergetippt und keineswegs ausgereift).
|
Re: Animierter Farbverlauf
ich dachte eher er will ein Bild von einem Verlauf (von Farbe1 zu Farbe2) und dann soll sich langsam Farbe1 und/oder Farbe2 zu einer anderen Farbe hinn ändern
|
Re: Animierter Farbverlauf
@Deddyh: Kann ich den Code davon haben?
|
Re: Animierter Farbverlauf
Den kompletten nicht, da er einfach nur Sch...e ist, aber die Basis (die originale unmodifizierte Gradient-Prozedur) kann ich gerne mal posten:
Delphi-Quellcode:
type TDirection = (dVert,dHorz);
procedure DrawGradientFillRect(Canvas: TCanvas; Rect: TRect; StartColor, EndColor: TColor; Direction: TDirection); var Steps: Integer; StartR, StartG, StartB, EndR, EndG, EndB: Byte; CrrR, CrrG, CrrB: Double; IncR, IncG, incB: Double; i: integer; begin case Direction of dVert: Steps := Rect.Bottom - Rect.Top; dHorz: Steps := Rect.Right - Rect.Left; else Steps := 0; end; if Steps = 0 then Exit; StartR := GetRValue(StartColor); EndR := GetRValue(EndColor); StartG := GetGValue(StartColor); EndG := GetGValue(EndColor); StartB := GetBValue(StartColor); EndB := GetBValue(EndColor); IncR := (EndR - StartR) / steps; IncG := (EndG - StartG) / steps; IncB := (EndB - StartB) / steps; CrrR := StartR; CrrG := StartG; CrrB := StartB; for i := 0 to Steps do begin Canvas.Pen.Color := RGB(Round(CrrR), Round(CrrG), Round(CrrB)); case Direction of dVert: begin MoveToEx(Canvas.Handle,Rect.Left,i,nil); LineTo(Canvas.Handle,Rect.Right + Rect.Left, i); end; dHorz: begin MoveToEx(Canvas.Handle,i,Rect.Top,nil); LineTo(Canvas.Handle,i,Rect.Top + Rect.Bottom); end; end; CrrR := CrrR + IncR; CrrG := CrrG + IncG; CrrB := CrrB + IncB; end; end; |
Re: Animierter Farbverlauf
Die hilft mir aber nicht weiter. Ich benutze die TJvGradient Komponente von den Jedis, die funkioniert auch super. Mir geht es um den Teil des Codes der die Farbe verändert.
|
Re: Animierter Farbverlauf
Guck Dir den geposteten Code nochmal in Ruhe an, da werden auch Farben verändert.
|
Re: Animierter Farbverlauf
Ich brauch aber eine Funktion, die sich um das ändern der Farbe wie in deinem Beispiel ändert. Deine Funktion erstellt ja einen Farbverlauf. Den brauch ich ja nicht, das macht die JvGradient Komponente. Da muss ich der StartColor nur einen TColor Wert übergeben mehr nicht.
|
Re: Animierter Farbverlauf
Herrgott, Larsi, ich habe doch
![]() |
Re: Animierter Farbverlauf
Dann geht nur mit einem vordefinierten Array wie willst sonst
bestimmen welche Farben angezeigt werden sollen und welche nicht ? Du erstellst ein Array mit Farben und übergibst immer Stepweise die nächste Farbe aus diesen. Anfangsfarbe wäre dann die welche du deiner komponente übergibst. Beispiel von SoundMachine
Delphi-Quellcode:
gruss Emil
procedure ColorInit;
begin gColor[1] := RGB(32,32,32); gColor[2] := RGB(0,44,233); gColor[3] := RGB(0,67,210); gColor[4] := RGB(0,89,187); gColor[5] := RGB(0,112,164); gColor[6] := RGB(0,135,142); gColor[7] := RGB(0,159,117); gColor[8] := RGB(0,183,88); gColor[9] := RGB(0,207,58); gColor[10] := RGB(0,231,29); gColor[11] := RGB(26,234,26); gColor[12] := RGB(52,237,23); gColor[13] := RGB(79,240,20); gColor[14] := RGB(105,243,17); gColor[15] := RGB(126,245,14); gColor[16] := RGB(147,248,11); gColor[17] := RGB(168,250,8); gColor[18] := RGB(189,253,5); gColor[19] := RGB(210,255,2); gColor[20] := RGB(233,255,0); gColor[21] := RGB(255,255,0); gColor[22] := RGB(255,251,0); gColor[23] := RGB(255,235,0); gColor[24] := RGB(255,215,0); gColor[25] := RGB(255,196,0); gColor[26] := RGB(255,176,0); gColor[27] := RGB(255,156,0); gColor[28] := RGB(253,137,0); gColor[29] := RGB(255,117,0); gColor[30] := RGB(255,97,0); gColor[31] := RGB(255,78,0); gColor[32] := RGB(255,58,0); gColor[33] := RGB(255,0,0); end; |
Re: Animierter Farbverlauf
Wie muss ich die Prozedur aufrufen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz