![]() |
Farbwerte aus Textdatei einlesen
Hi Leute,
Ich habe folgendes Problem: Ich speichere zunächst einen Farbwert (Hexadezimal) in einer Textdatei
Delphi-Quellcode:
doch wenn ich den Wert wieder auslese und versuche einem Objekt diese Farbe zuzuweisen wird das Objekt schwarz...
writeln (save, TimeToStr(Now)+ '#' + HName + '#' + IntToStr(HFarbe) + '#' + BoolToStr(Schloss) + '#');
Delphi-Quellcode:
repeat
begin Fabezaehler := Fabezaehler + Zeile[Zaehler]; inc (Zaehler); end; until Zeile[Zaehler] = '#'; HalFarbe := StrToInt(Fabezaehler); inc (Zaehler);
Delphi-Quellcode:
Beim Speichern wird das "$" abgeschnitten, daher vermute ich mal stark daß es daran liegt, aber wie integriere ich das wieder in meinen Farbwert?
Panel1.Color := HalFarbe;
|
Hallo Hellcat,
probier's mal damit:
Code:
function IntToHexCol(w : integer) : string;
const hex : array[0..15] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); var i, t : integer; s : string; begin s := ''; for i := 1 to 8 do begin t := w and $0F; s := hex[t] + s; w := w shr 4; end; Result := '$' + s; end; mfg eddy |
Moin Hellcat,
so wie Du den Farbwert speicherst, speicherst Du ihn nicht hexadezimal, sondern dezimal. Um HFarbe in eine hexadezimale Darstellung umzuwandeln, müsstest Du IntToHex verwenden. Zum Auslesen, könntest Du dann mit
Delphi-Quellcode:
den Wert wieder in einen Zahlenwert umwandeln.
HalFarbe := StrToInt('$'+Fabezaehler);
Deine Variante müsste allerdings genauso gut funktionieren, denn das Zahlensystem sollte unerheblich sein. Schau doch mal nach, was Fabezaehler am Ende der Schleife enthält (z.B. mit ShowMessage, oder durch Breakpoint) |
Ok, jetzt geht's! Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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