![]() |
TColor in String umwandeln
Hi,
ist es möglich den TColor type, den der ColorDialog ausgibt in einen String umzuwandeln, um ihn in einer .ini-Datei zu speichern?
Delphi-Quellcode:
v_title_color ist übrigens eine globale Variable.
procedure Tfm_optionen.Title_color_changeClick(Sender: TObject);
Var IniDat : TIniFile; begin If ColorDialog1.Execute = True Then begin frm_main.UO_Commander_Title.Font.Color := ColorDialog1.Color; v_Title_color := ColorDialog1.Color; end; IniDat := TIniFile.Create ('.\config.ini'); with IniDat do begin Writestring ('Optionen', 'Title color', v_Title_color); end; IniDat.Free; end; Und natürlich bekomme ich dann diese Fehlermeldung:
Delphi-Quellcode:
[Fehler] Unit_befedit.pas(358): Inkompatible Typen: 'String' und 'TColor'
|
Re: TColor in String umwandeln
TColor ist ein 32bit-Integer, du kannst ihn also über WriteInteger speichern.
|
Re: TColor in String umwandeln
Wie wäre es mit einem ColorToString? ;)
|
Re: TColor in String umwandeln
![]() Schau mal hier: ![]() |
Re: TColor in String umwandeln
Aber für eine Ini reicht schon
![]() ![]() Beispiel für clRed: IntToStr liefert: 255 COlorToString: clRed |
Re: TColor in String umwandeln
Warum denn so kompliziert? Das Einfachste ist es doch, einen Typ auch als eben diesen zu speichern.
|
Re: TColor in String umwandeln
Ich nochmal,
Warum nicht gleich als Integer in die Ini schreiben ?
Delphi-Quellcode:
// in Ini schreiben
{IniDat.}WriteInteger('Optionen', 'Title color', v_Title_color); // aus Ini lesen v_Title_color := {IniDat.}ReadInteger('Optionen', 'Title color', 0); |
Re: TColor in String umwandeln
...,weil dann Systemfarben nicht gespeichert werden.
PS: TColor = ^Cardinal |
Re: TColor in String umwandeln
Ich habs bisher immer als Integer gespeichert/geladen und noch nie Probleme gehabt.
|
Re: TColor in String umwandeln
TColor ist kein pointer auf Cardinal btw
sondern nur ein normales cardinal </senf> [edit] und mit dem integer klappts weil die systemfarben nicht größer als $7FFFFFFF sind, was der maximalen positiven grenze vom integer entsprechen würde. systemfarben befinden sich/beginnen bei $01000000 ... [/edit] |
Re: TColor in String umwandeln
Zitat:
|
Re: TColor in String umwandeln
Übrigens:
Delphi-Quellcode:
WriteInteger arbeitet mit Longint ein Integer Typ
procedure WriteInteger(const Section, Ident: String; Value: Longint); virtual;
Delphi-Quellcode:
Das sollte also ausreichen. (wenn ich mich nicht irre :wink: )
Cardinal 0 .. 4294967295 ( unsigned 32-bit )
Longint –2147483648 .. 2147483647 ( signed 32-bit ) type TColor = -$7FFFFFFF-1 (-2147483646) .. $7FFFFFFF (2147483647) |
Re: TColor in String umwandeln
IntToStr hat wunderbar geklappt. Ich habe immer TColorToStr versucht und das hatte irgentwie net geklappt. Aber nun funzt es und ich bedanke mich für eure Hilfe :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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-2025 by Thomas Breitkreuz