Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TColor in String umwandeln (https://www.delphipraxis.net/49989-tcolor-string-umwandeln.html)

Stony2k 19. Jul 2005 11:13


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:
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;
v_title_color ist übrigens eine globale Variable.
Und natürlich bekomme ich dann diese Fehlermeldung:
Delphi-Quellcode:
[Fehler] Unit_befedit.pas(358): Inkompatible Typen: 'String' und 'TColor'

Khabarakh 19. Jul 2005 11:15

Re: TColor in String umwandeln
 
TColor ist ein 32bit-Integer, du kannst ihn also über WriteInteger speichern.

Jarmen_Kell 19. Jul 2005 11:17

Re: TColor in String umwandeln
 
Wie wäre es mit einem ColorToString? ;)

turboPASCAL 19. Jul 2005 11:25

Re: TColor in String umwandeln
 
sakura hat da schon mal etwas in der Art gemacht.
Schau mal hier: HTML Color --> TColor --> HTML Color

Matze 19. Jul 2005 11:29

Re: TColor in String umwandeln
 
Aber für eine Ini reicht schon Delphi-Referenz durchsuchenIntToStr oder Delphi-Referenz durchsuchenColorToString, kommt auf's Format an, als was speichern möchte.

Beispiel für clRed:

IntToStr liefert: 255
COlorToString: clRed

Khabarakh 19. Jul 2005 11:33

Re: TColor in String umwandeln
 
Warum denn so kompliziert? Das Einfachste ist es doch, einen Typ auch als eben diesen zu speichern.

turboPASCAL 19. Jul 2005 11:49

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);

bigg 19. Jul 2005 11:57

Re: TColor in String umwandeln
 
...,weil dann Systemfarben nicht gespeichert werden.

PS: TColor = ^Cardinal

Jasocul 19. Jul 2005 12:05

Re: TColor in String umwandeln
 
Ich habs bisher immer als Integer gespeichert/geladen und noch nie Probleme gehabt.

barf00s 19. Jul 2005 12:06

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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
Seite 1 von 2  1 2      

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