Einzelnen Beitrag anzeigen

The_Doomed

Registriert seit: 5. Dez 2007
101 Beiträge
 
#1

Hexadezimal RGB (Edit und Trackbar) simultan ändern

  Alt 26. Feb 2008, 18:17
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
  Mit Zitat antworten Zitat