myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Delphi] Farbmischer zeigt weder Farbe noch Zahlen an (https://mygully.com/showthread.php?t=1934287)

neroweger 05.11.09 19:44

[Delphi] Farbmischer zeigt weder Farbe noch Zahlen an
 
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.


Celion 08.11.09 21:18

@Neroweger

Ich würde an deiner Stelle vlt mit Trackbar arbeiten ;)

neroweger 11.11.09 10:16

Zitat:

Zitat von Celion (Beitrag 20122434)
Ich würde an deiner Stelle vlt mit Trackbar arbeiten ;)

Nunja, der Unterschied ist doch nur optisch festzustellen oder nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.