Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Farbmixer (https://www.delphipraxis.net/77364-farbmixer.html)

Lee500 18. Sep 2006 17:17


Farbmixer
 
Ich schreibe ein Programm, mit dem man die RGB Farben mixen kann. Das soll wie folgt sein:

man hat 3 TrackBars mit denen man die Farbe einstellt, ein Shape in dem die Farbe angezeigt werden soll und ein Textfeld in dem der Hexadezimalcode für die Farbe steht. So weit so gut.
Delphi-Quellcode:
var
  Form1: TForm1;
  r1, g1, b1: Integer;
  r2, g2, b2, hex: string;

implementation

{$R *.dfm}


procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  r1 := TrackBar1.Position;
  r2 := IntToHex(r1, 2);
  hex := r2 + g2 + b2;
  Shape1.Brush.Color := StringToColor(hex);
end;
Das funktioniert soweit, bis man in den 10er bereich des hexacodes kommt. Also 0A ... Dann meckert er: 0A ist kein gültiger Integerwert. Dabei speichere ich den Hexacode doch in einem String. Kann mir das mal wer erklärn?

KrasserChecker 18. Sep 2006 17:22

Re: Farbmixer
 
Wahrscheinlich erkennt Delphi den Hexwert nicht als Hexwert. Setz' doch einfach mal das Zeichen "$" vor den String. So werden Hexwerte in Delphi nämlich eigentlich angegeben.

Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  r1 := TrackBar1.Position;
  r2 := IntToHex(r1, 2);
  hex := '$' + b2 + g2 + r2;
  Shape1.Brush.Color := StringToColor(hex);
end;
Ach ja: Farben werden in Delphi übrigens "rückwärts" definiert. Also nicht RRGGBB, sondern BBGGRR :roll:

Lee500 18. Sep 2006 17:23

Re: Farbmixer
 
funktioniert. Danke

Khabarakh 18. Sep 2006 18:09

Re: Farbmixer
 
Delphi-Referenz durchsuchenWindows.RGB ;) ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.

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