Ich habe ein kleines Problem. Bin ganz neu mit Delphi zu Gange und wollte Heute einen Farbmischer Programmieren, der mir sowohl die RGB Werte&Farbe, als auch Hex-Code der Farbe ausgibt. Jedoch werden mir beim Schieben der Regler weder Zahlen NOCH die Farbe, die er eigentlich ausgeben sollte gezeigt.
Hier mal der Code, der hoffentlich nachzuvollziehen ist:
Code:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
SFarbe: TShape;
ERot: TEdit;
EGruen: TEdit;
EBlau: TEdit;
EHex: TEdit;
RotBar: TScrollBar;
GruenBar: TScrollBar;
BlauBar: TScrollBar;
procedure RotBarWert(Sender: TObject);
procedure GruenBarWert(Sender: TObject);
procedure BlauBarWert(Sender: TObject);
private
{ Private declarations }
procedure FarbeEinstellen;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FarbeEinstellen;
Var Farbe : integer;
begin
Farbe := RotBar.Position*256*256 + GruenBar.Position*256 + BlauBar.Position;
SFarbe.Brush.Color := Farbe;
EHex.Text:= '$' + IntToHex (Farbe, 6);
end;
procedure TForm1.RotBarWert(Sender: TObject);
begin
FarbeEinstellen;
ERot.Text := IntToStr (RotBar.Position);
end;
procedure TForm1.GruenBarWert(Sender: TObject);
begin
FarbeEinstellen;
EGruen.Text := IntToStr (GruenBar.Position);
end;
procedure TForm1.BlauBarWert(Sender: TObject);
begin
FarbeEinstellen;
EBlau.Text := IntToStr (BlauBar.Position);
end;
end.
Erkennt jemand vielleicht meinen Fehler? Wäre super dankbar, wenn ihr mir weiterhelfen könntet!
MfG
edit// Habe den Fehler gefunden und das Programm ein wenig verbessert
Stelle euch den Code hier mal rein:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
SFarbe: TShape;
ERot: TEdit;
EGruen: TEdit;
EBlau: TEdit;
EHex: TEdit;
RotBar: TScrollBar;
GruenBar: TScrollBar;
BlauBar: TScrollBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
EndeBtn: TButton;
ResetBtn: TButton;
procedure RotBarWert(Sender: TObject);
procedure GruenBarWert(Sender: TObject);
procedure BlauBarWert(Sender: TObject);
procedure EndeBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
private
{ Private declarations }
Farbe: LongInt;
public
{ Public declarations }
procedure uebernehmen;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.uebernehmen;
begin
Farbe := RotBar.Position*256*256 + GruenBar.Position*256 + BlauBar.Position;
SFarbe.Brush.Color := RGB(RotBar.Position,GruenBar.Position,BlauBar.Position);
EHex.Text:= '#' + IntToHex (Farbe, 6);
end;
procedure TForm1.RotBarWert(Sender: TObject);
begin
uebernehmen;
ERot.Text := IntToStr(RotBar.Position);
end;
procedure TForm1.GruenBarWert(Sender: TObject);
begin
uebernehmen;
EGruen.Text := IntToStr(GruenBar.Position);
end;
procedure TForm1.BlauBarWert(Sender: TObject);
begin
uebernehmen;
EBlau.Text := IntToStr(BlauBar.Position);
end;
procedure TForm1.EndeBtnClick(Sender: TObject);
begin
close;
end;
procedure TForm1.ResetBtnClick(Sender: TObject);
begin
RotBar.Position := 0;
GruenBar.Position := 0;
BlauBar.Position := 0;
end;
end.