AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Farbwerte aus Textdatei einlesen

Ein Thema von Hellcat · begonnen am 13. Mär 2003 · letzter Beitrag vom 16. Mär 2003
Antwort Antwort
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#1

Farbwerte aus Textdatei einlesen

  Alt 13. Mär 2003, 21:03
Hi Leute,

Ich habe folgendes Problem: Ich speichere zunächst einen Farbwert (Hexadezimal) in einer Textdatei
writeln (save, TimeToStr(Now)+ '#' + HName + '#' + IntToStr(HFarbe) + '#' + BoolToStr(Schloss) + '#'); doch wenn ich den Wert wieder auslese und versuche einem Objekt diese Farbe zuzuweisen wird das Objekt schwarz...
Delphi-Quellcode:
repeat
    begin
      Fabezaehler := Fabezaehler + Zeile[Zaehler];
      inc (Zaehler);
    end;
  until Zeile[Zaehler] = '#';
  HalFarbe := StrToInt(Fabezaehler);
  inc (Zaehler);
Panel1.Color := HalFarbe; Beim Speichern wird das "$" abgeschnitten, daher vermute ich mal stark daß es daran liegt, aber wie integriere ich das wieder in meinen Farbwert?
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#2
  Alt 14. Mär 2003, 10:47
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 14. Mär 2003, 19:53
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

HalFarbe := StrToInt('$'+Fabezaehler); den Wert wieder in einen Zahlenwert umwandeln.

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)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 16. Mär 2003, 20:18
Ok, jetzt geht's! Vielen Dank!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
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