![]() |
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:
danke schon mal im vorrausbegin 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; |
Re: Hexadezimal RGB (Edit und Trackbar) simultan ändern
push it to be solved ^^
:duck: |
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 23:15 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