Konvertierung von 'UnicodeString' nach 'TColor' nicht möglich !!!
-
Konvertierung von 'UnicodeString' nach 'TColor' nicht möglich
Ich Lasse Die Farbe meines Formulars so abspeichern:
Label2->Caption = Form1->Color; create << Label2->Caption.c_str(); create << "\n";
Ich finde unglaublich (gut^^), dass das funktioniert.
Andersherum, wie sollte es auch anders sein, FUNKTIONIERT ES NICHT.
Wie kann ich die Farbe mit einer Variable verändern ?
Wie konvertiere ich (typ) zu TColor ?
am besten wäre es mit einer UnicodeString Variable.2. Wenn ich das wie Oben beschrieben abspeichere kommen zahlen raus wie:
16777215 (=FFFFFF laut rechner)
doch sollte das nicht irgwie so aussehen ?:
0x0000FF00 (je nach Farbe) (also in Hex)
-
Hallo
1. TColor ist implizit in ein int umwandelbar, deshalb funkioniert TColor -> String so einfach. Der Rückweg geht über StrToInt, am besten mit explizieten Konstruktor, um die Warnung abzufangen :
String x = ...; TColor y = TColor(StrToInt(x));
2. Der Stream speichert die Zahlen nunmal in Dezimaler Form, nicht in Hexadezimaler. Die Werte sind aber dir gleichen.
bis bald
akari
-
Danke, aber letztendlich kommt nonsenz raus.
design.open(flb->FileName.c_str()); while (std::getline(design,Inhalt[iso])) { Inhalt[iso]; MessageBox(NULL,Inhalt[iso].c_str(),"ERROR",MB_OK|MB_ICONQUESTION); iso++; } Form1->Color = TColor(Inhalt[1].c_str());
design ist ein ifstream mit dem ich die "Farben" also eigentlich Zahlen aus einer Datei lesen lasse, die ich vorher abspeichern lassen hab.
aus grau wird zum Beispiel Grün etc.
Wie wird dieser Fehler verursacht ?Label2->Caption = Form1->Color; create << Label2->Caption.c_str(); create << "\n";
wie
hier gezeigt speicher ich ab
wobei create ein ofstream ist.Danke im voraus (aber auch nur wenn ihr wisst was falsch ist :p )
-
Hi,
kleiner Denkanstoss :
static const TColor myLightMint = 0xCFFECF; // TColor int color = myLightMint; // TColor->int String chex = "0x" + IntToHex(myLightMint,8); // int->hex bzw. String Form1->Color = TColor(StrToInt(chex)); // String->TColor ->s. Posting akari Memo1->Lines->Add("hex: " + chex + ", int: " + IntToStr(color));
mfg
kpeter