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 Hexadezimal RGB (Edit und Trackbar) simultan ändern (https://www.delphipraxis.net/109233-hexadezimal-rgb-edit-und-trackbar-simultan-aendern.html)

The_Doomed 26. Feb 2008 17:17


Hexadezimal RGB (Edit und Trackbar) simultan ändern
 
ha da ein problem dem ich nich auf die spur komme
und zwar will ich ein Bild mit einer farbe füllen
und dies soll sowohl über RGB-Trackbars, RGB-Editfelder und ein Hexadezimal-Editfeld möglich sein
wenn ich nun einen der werte verändere sollen alle anderen werte automatisch mitgeändert werden
das klappt auch super nur wenn ich einen RGB Wert eingebe (zb. 255,255,0) dann erstellt er den dazugehörigen
Hexadezimalcode nicht (--> $00FFFF00 (#FFFF00) sondern gibt den Fehler Inkompatible Typen Integer und String aus
nur weiß ich ni wo dies der fall sein soll

Delphi-Quellcode:
 
begin
Col:=StringToColor('$00' + Edit1.Text); //hier liegt meiner vermutung nach der Fehler
Edit2.text:=Format('%d',[GetBValue(Col)]);
Edit3.Text:=Format('%d',[GetGValue(Col)]);
edit4.Text:=Format('%d',[GetRValue(Col)]);

end;

procedure TForm1.Edit2Change(Sender: TObject);
var a,b,c:string;
begin
a:=Edit2.Text;
b:=Edit3.Text;
c:=Edit4.Text;
Trackbar1.Position:=StrToInt(Edit2.Text);
Edit1.Text:=Format('2x%.2x%.2x', [StrToInt(a),StrToInt(b),StrToInt(c)]); //Umwandlung des RGB in Hexa
end;

procedure TForm1.Edit3Change(Sender: TObject);
var a,b,c:string;
begin
a:=Edit2.Text;
b:=Edit3.Text;
c:=Edit4.Text;
Trackbar2.Position:=StrToInt(Edit3.Text);
Edit1.Text:=Format('2x%.2x%.2x', [StrToInt(a),StrToInt(b),StrToInt(c)]);
end;

procedure TForm1.Edit4Change(Sender: TObject);
var a,b,c:string;
begin
a:=Edit2.Text;
b:=Edit3.Text;
c:=Edit4.Text;
Trackbar3.Position:=StrToInt(Edit4.Text);
edit1.Text:=Format('2x%.2x%.2x', [StrToInt(a),StrToInt(b),StrToInt(c)]);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
With Image1.Canvas do
begin
pen.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Style:=bssolid;
rectangle(0,0,Image1.Width,Image1.Height);
Edit2.Text:=IntToStr(Trackbar1.Position);
end;

end;


procedure TForm1.TrackBar2Change(Sender: TObject);
begin
With Image1.Canvas do
begin
pen.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Style:=bssolid;
rectangle(0,0,Image1.Width,Image1.Height);
Edit3.Text:=IntToStr(Trackbar2.Position);
end
end;


procedure TForm1.TrackBar3Change(Sender: TObject);
begin
With Image1.Canvas do
begin
pen.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Color:=RGB(Trackbar1.Position,Trackbar2.Position,Trackbar3.Position);
brush.Style:=bssolid;
rectangle(0,0,Image1.Width,Image1.Height);
Edit4.Text:=IntToStr(Trackbar3.Position);
end
end;
danke schon mal im vorraus

The_Doomed 25. Apr 2008 18:06

Re: Hexadezimal RGB (Edit und Trackbar) simultan ändern
 
push it to be solved ^^
:duck:

Fussball-Robby 25. Apr 2008 18:08

Re: Hexadezimal RGB (Edit und Trackbar) simultan ändern
 
Debug doch mal mit F7, dann findest du die fehlerhafte Stelle ganz schnell :wink:
[Edit]Hab nicht gesehen, dass du die Stelle schon markiert hattest. Was steht zu dem Zeitpunkt denn in Edit1? Und von welchem Typ ist Col?[/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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