StringToColor
-
Hallo,
für einen kleinen Schubser in die richtige Richtung wäre ich sehr dankbar.DBGrid->Canvas->Brush->Color = clWhite
//clWhite gibt die Farbe meines Grid an.
//ich möchte meine Farbe aus einer DB holen und diese wird als AnsiString ausgelesen.AnsiString Farbe = DBEdit1->Query1->FieldByName("1")->AsString;
//Möchte ich meinen String Farbe in
DBGrid1->Canvas->Brush->Color = Farbe
//einsetzen, meckert mein Compiler und ich bekomme es irgendwie nicht hin.
//Er sagt: String ist kein Element von TColor.
//Ein kleiner Code-Schnipsel wäre tollLG
Traugott
-
@Traugott sagte in StringToColor:
//einsetzen, meckert mein Compiler und ich bekomme es irgendwie nicht hin.
//Er sagt: String ist kein Element von TColor.Der Compiler hat Recht!
//Ein kleiner Code-Schnipsel wäre toll
puts("Ohne Code nix los.");
Du nutzt doch Borland VCL?
-
@Traugott sagte in StringToColor:
DBGrid1->Canvas->Brush->Color = Farbe
Naja, dein Betreff sagt doch schon "StringToColor". Das musst du auch aufrufen.
Also sowas wie...->Color = StringToColor(Farbe)
.
-
TColor ist nix Weiteres als ein 32bit unsigned int mit ARGB Farbinformationen. Ausm Kopf weiß ich grad nicht, ob´s ARGB oder ABGR ist, da war irgendwas. Bei der direkten Zuweisung warnt der Compiler zwar, aber es funktioniert. Mit einem temporären Objekt geht´s auch ohne Warnung. Wenn dein db-Eintrag den Namen einer Farbe enthält (also clWhite, clRed, etc.) musst du ihn mit
StringToColor
nach TColor konvertieren.unsigned int black_color = 0; String color_name = "clBlack"; DBGrid->Canvas->Brush->Color = black_color // Warnung IIRC DBGrid->Canvas->Brush->Color = TColor( black_color ); // keine Warnung, ebenfalls IIRC DBGrid->Canvas->Brush->Color = StringToColor( color_name );
Damit sollte hoffentlich alles klar sein.
Edit:
TColor ist doch kein unsigned int32, sondern ein int32 und hält RGB Farbinformationen im BGR Format. Weitere Infos gibt´s hier
-
Dieser Beitrag wurde gelöscht!
-