![]() |
Re: TGauge ForeColor
Ok, soweit bin ich:
Delphi-Quellcode:
Nur der "Farbverlauf" sieht serh schlecht aus..
Gauge.Progress := Gauge.Progress + 1;
DoubleBuffered := true; case Gauge.Progress of 0..9 : Gauge.ForeColor := $0000AA00; 10..19 : Gauge.ForeColor := $0000AA82; 20..29 : Gauge.ForeColor := $0000AAC3; 30..39 : Gauge.ForeColor := $0000AAED; 40..49 : Gauge.ForeColor := $0000AAFF; 50..59 : Gauge.ForeColor := $00009AFF; 60..69 : Gauge.ForeColor := $000081FF; 70..79 : Gauge.ForeColor := $00006BFF; 80..89 : Gauge.ForeColor := $000058FF; 90..100: Gauge.ForeColor := $000000FF; end; Er ist nicht flüssig. Kann man sowas unkomplizierter lösen? |
Re: TGauge ForeColor
Hallo,
![]() Hoffe das hilft dir weiter. Du musst dann nur bei jeder Änderung der Gauge die Funktion entsprechend aufrufen, dir die Farbe holen, und auf den ForeColor (Die Gauge hat sicher ein entsprechendes Event?) zuweisen. |
Re: TGauge ForeColor
Ich habe mir das jezt mal angesehen, leider verstehe ich den Code nicht wirklich.
|
Re: TGauge ForeColor
Guck dir doch einfach mal den Funktionskopf an, mit etwas Überlegung siehst du gleich, was diese dann macht, ohne den Code gesehen zu haben.
Delphi-Quellcode:
ColStart: Anfangsfarbe
function LinearGradientStep(ColStart, ColEnd: TColor; Length, Step: Integer): TColor;
ColEnd: Endfarbe Length: Länge des farbverlaufs (Länge deiner Gauge) Step: Schrittweite Result: TColor Du erhälst somit einen Farbwert im Abhängigkeit der angegebenen Parameter. Das Vorgehen hat dir Luke bereits genannt. |
Re: TGauge ForeColor
muss ich
ColStart, ColEnd, Length und Step deklarieren? also so:
Delphi-Quellcode:
?
ColStart := clLime;
ColEnd := clRed; Lenght := '100'; Step := '1'; Zitat:
|
Re: TGauge ForeColor
Nein lediglich beim Funktionsaufruf übergeben. Du solltest dir einmal die Delphi-Grundlagen ansehen.
|
Re: TGauge ForeColor
Die gucke ich mir immerwieder mal an. Aber wenn ich es auf anhieb nicht verstehe kann ich nix machen..
Eine kleine Hilfe, z.B. CodeSchnipsel, würde mir helfen. |
Re: TGauge ForeColor
Zitat:
Ich würde es in der Art lösen (setzt voraus, dass Width > MaxValue ist):
Delphi-Quellcode:
Frag mich bitte nicht, wieso am Ende so ein Farbsprung stattfindet. :gruebel:
var
i: Integer; begin for i := 1 to Gauge.MaxValue do begin Gauge.Progress := i; Gauge.ForeColor := LinearGradientStep(clGreen, clBlue, Gauge.Width, i * round(Gauge.Width / Gauge.MaxValue)); Delay(40); end; end; |
Re: TGauge ForeColor
Achso, die Funktion kann biszu 4 Werte aufnehmen?
Mh.. soetwas habe ich gestern noch in einem Buch durchgelesen, da ging es halt aber um Canvas |
Re: TGauge ForeColor
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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 by Thomas Breitkreuz