![]() |
TColor in reg schreiben
Hallo ich wollte fragen ob jemand zufällig weiß wie man den Wert den man bekommt wenn man eine Farbe aus dem Dialog.Color nimmt in die reg schreiben kann
es gibt ja reg.writestring, reg.writeinteger etc... aber keinen reg.writecolor |
Re: TColor in reg schreiben
TColor ist ein Integer
|
Re: TColor in reg schreiben
Hmm irgendwie funktioniert das aber nicht. Hier ist mein Code. In einer Unit3 die für die Einstellungen des Pong Spiel gedacht ist wollte ich die Farbe der Schläger verändern. Die Unit2 ist das eigentliche Spiel wo sich die Schläger befinden.
Delphi-Quellcode:
---------------------------------------
unit Unit3;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Registry; type TfrmOption = class(TForm) Label1: TLabel; btnSpeichern: TButton; dlgColor: TColorDialog; Label2: TLabel; Label3: TLabel; btn1Color: TButton; btn2Color: TButton; Edit1: TEdit; procedure btn1ColorClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmOption: TfrmOption; reg: TRegistry; implementation uses unit2; {$R *.DFM} procedure TfrmOption.FormCreate(Sender: TObject); begin reg := TRegistry.Create; end; procedure TfrmOption.FormDestroy(Sender: TObject); begin reg.Free; end; procedure TfrmOption.btn1ColorClick(Sender: TObject); begin if dlgColor.execute then Leftcolor := dlgColor.color; if reg.OpenKey('Software\FDAC\Pong', true) then begin reg.WriteInteger('Leftcolor', Leftcolor); reg.CloseKey; end; end; end.
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Menus, MPlayer, ExtDlgs, jpeg,Unit3,Registry; type TfrmPong = class(TForm) tmBall: TTimer; pnlLeft: TPanel; pnlLine: TPanel; lblLeftPoint: TLabel; lblRightPoint: TLabel; pnlRight: TPanel; mmMenu2: TMainMenu; mmiPause: TMenuItem; mmiSound: TMenuItem; dlgOpen: TOpenDialog; mpWM: TMediaPlayer; mmiWMLied: TMenuItem; dlgPicture: TOpenPictureDialog; imgBall: TImage; pnlBottom: TPanel; pnlTop: TPanel; mmicolor: TMenuItem; dlgcolor2: TColorDialog; procedure FormKeyPress(Sender: TObject; var Key: Char); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure FormClick(Sender: TObject); procedure tmBallTimer(Sender: TObject); procedure mmiPauseClick(Sender: TObject); procedure mmiWMLiedClick(Sender: TObject); procedure mmicolorClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmPong: TfrmPong; var X,Y,VX,VY:integer; var Test:Boolean; var FWidth,FHeight:Integer; var Leftcolor:integer; implementation {$R *.DFM} procedure TfrmPong.FormCreate(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; if reg.OpenKey('Software\FDAC\Pong', false) then begin if reg.ValueExists('Leftcolor') then begin pnlLeft.Color := reg.ReadInteger('Leftcolor'); end; reg.CloseKey end; reg.Free; end; |
Re: TColor in reg schreiben
Was funktioniert nicht? Mit irgendwas können wir nicht viel anfangen
|
Re: TColor in reg schreiben
sry vergessen die Fehlermeldung hinzuzufügen:
Error: Project Project1.exe raised execption class ERegistryExecption with message "Failed to get data for 'Leftcolor'. Process stopped.Use Step or Run to Continue. Diese Fehlermeldung kommt wenn ich Pong starten will. |
Re: TColor in reg schreiben
Hallo,
Du solltest schon angeben, wo sich der Schlüssel in der Registry befindet (HKLM, HKCU, ...). Diese Angabe fehlt bei dir komplett, wenn ich das richtig sehe. Ob das dein Problem löst, weiß ich nicht, aber mir kommt es aktuell falsch vor. PS: Das mit den globalen Variablen ist sehr unsauber, aber das ist eine andere Geschichte. |
Re: TColor in reg schreiben
Also ich hab den Code mit eine Zahl getestet z.b um die Breite zuverändern und da funktioniert der Code. Also am Code selbst glaube ich liegt es nicht. Es liegt meiner Meinung nach dabei den dlgColor.Color in die reg.WriteInteger zuschreiben.
|
Re: TColor in reg schreiben
Zitat:
|
Re: TColor in reg schreiben
ok dann liegt es ja daran nicht ...wisst ihr denn vieleicht eine Lösung wie ich das angehen soll?
|
Re: TColor in reg schreiben
Hast du denn schon mal per RegEdit geguckt, ob der Wert auch in der Registry steht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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 by Thomas Breitkreuz