Irgendwie bewege ich mich noch immer auf dem Holzpfad. Ich komme einfach, trotz all Deiner Hilfen, nicht weiter. Ich habe Deinen Vorschlag (Color in LongInt umzuwandeln) aufgegriffen, finde aber bis jetzt keine entsprechende Delphi-Funktion zum Umwandeln. Nur ColorToRGB, ColorToString.
Mir geht es ja nur darum, in der programmeigenen INI-Datei die Farben des Benutzers abzuspeichern, aber nicht als "cl"-Wert, sondern nur als "$"-Wert. Jedoch, wenn der Benutzer sich eine Farbe im ColorDialog aussucht, kann es manchmal sein, daß diese Farbe als "cl"-Wert weitergegeben wird und nicht als "$"-Wert. StringToColor erzeugt doch auch Farbwerte wie "clRed", wenn der Benutzer die Farbe
RGB FF 00 00 (reines rot) ausgesucht hatte.
Und Dein Zitat stimmt: das Problem steckt wirklich in den meisten Fällen zwischen den Ohren. Ich hoffe, ich fange nicht an, Euch alle zu langweilen mit meinen ewigen Fragen...
UPDATE
Ich habe jetzt eine andere Lösung gefunden:
Code:
var
TheColor1, TheColor2: String;
TheColor1:=TColorToHex(Sender,GlowLabel1.Font.Color);
TheColor2:=TColorToHex(Sender,GlowLabel1.GlowColor);
TheColor1:='$00'+Copy(TheColor1,5,2)+Copy(TheColor1,3,2)+Copy(TheColor1,1,2);
TheColor2:='$00'+Copy(TheColor2,5,2)+Copy(TheColor2,3,2)+Copy(TheColor2,1,2);
function TAlpha.TColorToHex(Sender: TObject; Color: TColor): string;
begin
Result:=IntToHex(GetRValue(Color),2)+IntToHex(GetGValue(Color),2)+IntToHex(GetBValue(Color),2);
end;
function TAlpha.HexToTColor(Sender: TObject; sColor: string): TColor; // Nicht benutzt
begin
Result:=
RGB(StrToInt('$'+Copy(sColor,1,2)),StrToInt('$'+Copy(sColor,3,2)),StrToInt('$'+Copy(sColor,5,2)));
end;
Zitat von
Delphi 7:
Nun stimmt's!
Dieses Thema kann hiermit beendet werden.