Colorwert
-
Hallo,
ich bestimme durch Auswahl über TColorDialog eine Farbe. Den Wert (TColorDialog->Color) speichere ich in eine Textdatei. Wenn ich den Wert wieder auslese und einem Panel zuweisen will komme ich aber nicht weiter. Wie übergebe ich das korrekt ?
-
StringToColor?
-
In meiner Textdatei steht:
33023FILE *stream; String sValue; char msg[30]; stream = fopen("c:\\bc.txt", "r"); while (fgets(msg, 30, stream) != NULL) { sValue=msg; Panel29->Color = StringToColor(sValue); }Dann bekomme ich die Meldung, dass 33023 kein gültiger Integerwert sei.
Ich speichere das Ganze so:
FILE *stream; String sValue; char msg[30]; stream = fopen("c:\\bc.txt", "w"); sValue = (int) ColorDialog1->Color; // sValue = ColorDialog1->Color; fprintf(stream, "%s\n", sValue.c_str()); fclose(stream);
-
Mit ColorToString entpsrechend speichern und StringToColor wieder auslesen.
-
Hmm, 0x000... ist kein gültiger Integerwert
clYellow ist kein gültiger IntegerwertSorry, aber ich verstehseinfach nicht.
-
Quelltext?
-
Speichern:
FILE *stream; String sValue; char msg[30]; stream = fopen("c:\\symbole\\bc.txt", "w"); sValue = ColorToString(ColorDialog1->Color); fprintf(stream, "%s\n", sValue.c_str()); fclose(stream);Lesen:
FILE *stream; String sValue; char msg[30]; stream = fopen("c:\\symbole\\bc.txt", "r"); while (fgets(msg, 30, stream) != NULL) { sValue=msg; Panel29->Color = StringToColor(sValue); }
-
Wieviele Farben willst denn da deinem Panel geben das eine while benutzt und vor allem deren leere Returnzeile mit einliest.
-
Nur eine, hab den Code geändert. War kopiert aus einer anderen Funktion. Das Integerproblem bleibt aber.
-
Hallo
Mal mit reinen VCL-Mitteln (ist dem VCL/C-Mischmach eindeutig vorzuziehen)
TStringList* file = new TStringList; file->Add(ColorToString(clRed)); file->SaveToFile("test.dat"); delete file;TStringList* file = new TStringList; file->LoadFromFile("test.dat"); TColor cl = StringToColor(file->Strings[0]); delete file;bis bald
akari
-
Vielen Dank, klappt super !