AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Warum werden meine Farbwerte nich übernommen?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum werden meine Farbwerte nich übernommen?

Ein Thema von schöni · begonnen am 30. Sep 2005 · letzter Beitrag vom 30. Sep 2005
 
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#1

Warum werden meine Farbwerte nich übernommen?

  Alt 30. Sep 2005, 18:26
Hallo!

Da will ich endlich mal ein glitze kleines Progrämmchen für die Allgemeinheit zugänglich machen und da tritt ein eklatenter Fehler auf. Das Programm soll Farbwerte übernehmen, die mit Trackbars eingestellt werden. Die sich ergebende Farbe soll in einer TShape Komponente angezeigt werden. Im fertigen Programm will ich auf diese Weise Farbpaletten erzeugen, die ich dann in einer Datei speichern will, um sie für die Farbgestaltung zukünftiger Anwendungen einzusetzen. Hier ist der Quelltext:

Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, StdCtrls, ExtCtrls;

type
  TRGBstructure = record
    case integer of
     0: (r,g,b: byte);
     1: (red,green,blue,alpha: byte); //Die RGB Werte
     2: (color: Longint); //Die Mischfarbe
  end;

type
  TRGBClass = class //Eine Klasse zur Bearbeitung der Farbwerte
  private
    rgbStruc: TRGBStructure;
    function getColor: Longint;
    procedure setColor(value: Longint);
    function getred: byte;
    procedure setred(value: byte);
    function getgreen: byte;
    procedure setgreen(value: byte);
    function getblue: byte;
    procedure setblue(value: byte);
  public
    constructor create(filename: string);
    destructor destroy; override;
    procedure LoadFromFile(filename: string);
    procedure SaveToFile(filename: string);
    property Color: Longint read getColor write setColor;
    property red: byte read getred write setred;
    property green: byte read getgreen write setgreen;
    property blue: byte read getblue write setblue;
  end;

type
  TForm1 = class(TForm)
    RedValue: TTrackBar;
    GreenVal: TTrackBar;
    BlueVal: TTrackBar;
    ColorMonitor: TShape;
    stxtRed: TStaticText;
    stGreen: TStaticText;
    stBlue: TStaticText;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    strMin: TStaticText;
    strMax: TStaticText;
    stgMin: TStaticText;
    stgMax: TStaticText;
    stbMin: TStaticText;
    stbMax: TStaticText;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    procedure RedValueChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure GreenValChange(Sender: TObject);
    procedure BlueValChange(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Palette: TRGBClass;

implementation

{$R *.DFM}

function TRGBClass.getColor: Longint;
begin
   Result := rgbStruc.Color;
end;

procedure TRGBClass.setColor(value: Longint);
begin
   if rgbStruc.Color <> value then value := rgbStruc.Color;
end;

function TRGBClass.getred: byte;
begin
   Result := rgbStruc.red
end;

procedure TRGBClass.setred(value: byte);
begin
   if value <> rgbStruc.red then rgbStruc.red := value
end;

function TRGBClass.getgreen: byte;
begin
   Result := rgbStruc.green
end;

procedure TRGBClass.setgreen(value: byte);
begin
   if value <> rgbStruc.green then rgbStruc.green := value
end;

function TRGBClass.getblue: byte;
begin
   Result := rgbStruc.blue;
end;

procedure TRGBClass.setblue(value: byte);
begin
   if value <> rgbStruc.blue then rgbStruc.blue := value
end;


constructor TRGBClass.create(filename: string);
begin
   inherited Create;
end;

destructor TRGBClass.destroy;
begin
   inherited Destroy;
end;

procedure TRGBClass.LoadFromFile(filename: string);
begin
  //noch nicht implementiert
end;

procedure TRGBClass.SaveToFile(filename: string);
begin
  //noch nicht implementiert
end;

procedure TForm1.RedValueChange(Sender: TObject);
begin
   Palette.red := RedValue.Position; //Farbwert einstellen
   Brush.Color := Palette.Color; //Gesamtfarbe übergeben
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Palette := TRGBClass.Create('');
   ColorMonitor.Brush.Style := bsSolid;
   ColorMonitor.Brush.Color := Palette.Color;
end;

procedure TForm1.GreenValChange(Sender: TObject);
begin
   Palette.green := GreenVal.Position;
   ColorMonitor.Brush.Color := Palette.Color;
end;

procedure TForm1.BlueValChange(Sender: TObject);
begin
   Palette.blue := BlueVal.Position;
   ColorMonitor.Brush.Color := Palette.Color;
end;

end.
Nach Programmstart werden die Farben jedoch nicht korrekt übernommen und angezeigt. Kann mir jemand helfen. Wo liegt mein Fehler?

Verzweifelte Grüße von

schöni
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 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