Borland C++ Builder (VCL): Farben zum Speichern in Strings umwandeln

Ich muss mich momentan mal wieder mit C++ beschäftigen (Schulprojekt) und war bis vor wenigen Sekunden noch auf der Suche nach einer Möglichkeit, Farbeinstellungen sinnvoll abzuspeichern. Dabei sind mir dank Google ein paar Möglichkeiten über den Weg gelaufen. Diese möchte ich euch hier kurz vorstellen.

Wozu Farben in Strings umwandeln?

Wenn man ein Einstellungsmenü hat, wo man z.B. die Hintergrundfarbe einer Anwendung verändern kann, möchte man diese Einstellungen wahrscheinlich auch irgendwo abspeichern.  Benutzt man den Borland C++ Builder mit der VCL, kann man mit Farben ganz einfach unter Verwendung von TColor arbeiten.

Die Umwandlung

Um jetzt eine Farbe in einen String umzuwandeln, benötigt man eigentlich nur eine einzige Funktion: ColorToString(TColor cl). Diese Funktion ist selbsterklärend. Dennoch zeige ich euch hier, wie man sie benutzt:

ShowMessage(ColorToString(clBlack));

Ausgegeben wird hier „clBlack“. Wenn wir statt clBlack einmal clGreen einsetzen, sehen wir, dass wieder „clGreen“ ausgegeben wird. Man kann so also sehr einfach Konfigurationsdateien anlegen, die Farbeinstellungen enthalten.

Und jetzt wieder rückwärts

Selbstverständlich wollen wir das ganze jetzt auch wieder zurückwandeln, sonst hätte es ja keinen Sinn. Der ein oder andere kann sich den Namen der Funktion wahrscheinlich schon denken: StringToColor(AnsiString str)

Anwendung:

TColor farbe = StringToColor("clRed");

Die Variable Farbe enthält nun auch die Farbe Rot. Hätte nicht gedacht, dass das so einfach geht!

Die Zweite Möglichkeit: Der (int)-Cast mit einem TColor

Es ist auch möglich, Zahlen statt Strings zu benutzen. Mir gefällt diese Möglichkeit aber nicht so gut, da man hier nicht sofort erkennt, um was für eine Farbe es sich handelt. Dennoch stelle ich euch diese Form der Umwandlung auch hier vor.

Die Farbe Schwarz hat den Integer-Wert 0. Dieses Code-Beispiel belegt das.

ShowMessage(ColorToString((TColor)0));

„(TColor)0“ ist der relevante Code in diesem Codeauschnitt. Es wird ein Type-Cast zum Typ TColor durchgeführt. Da wir aber keine TColors ausgeben lassen können, müssen wir die Farbe wieder zu einem String machen. Danach können wir sie ausgeben. Und die Ausgabe wird wie erwartet „clBlack“ sein!

Aber auch umgekehrt lässt sich das zeigen:

ShowMessage(IntToStr((int)clBlack));

Als erstes wird der TColor-Wert zu einem int-Wert gecastet. Da ShowMessage() aber einen String erwartet, wandeln wir den Integer jetzt noch mit IntToStr() in einen AnsiString um. Und siehe da: „0“ wird ausgegeben!

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading...


Ein Kommentar zu “Borland C++ Builder (VCL): Farben zum Speichern in Strings umwandeln”

  1. […] gibt hier übrigens einen Artikel zum Speichern von Farben, der die unterschiedlichen Speichermöglichkeiten […]

Hinterlasse einen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

»Informationen zum Artikel

Autor: Simon
Datum: 27.06.2009
Zeit: 17:18 Uhr
Kategorien: C/C++
Gelesen: 10046x heute: 2x

Kommentare: RSS 2.0.
Diesen Artikel kommentieren oder einen Trackback senden.

»Meta