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 toll

    LG
    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


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


  • @DocShoe

    was so ein kleiner Schubser alles bewirken kann!!

    Vielen Dank an Euch !!!!

    LG
    Traugott


Anmelden zum Antworten