StringGrid Zeilen oder Spalten Farblich ändern



  • Hallo,
    habe eherausgefunden wie ich Spalten oder Zeilen bei StringGrids farblich ändern kann. Leider ist es so, dass ich sie ERSTENS nur bei Initialisierung vorgenben kann und ZWEITENS nicht so recht weiss, wie ich speziell eine bestimmte Spalte auswählen kann, die ich farblich ändern möchte.
    Im Prinzip geht es mir darum, dass ich einen bestimten Wert aus einem Array erhalte, der mir wiedergibt, welche Spalte grau und welche Spalte Weiss ist. Wie kann ich diese Werte genau auf das StringGrid anwenden um dessen Farbe in der jeweiligen Spalte zu ändern?
    Das StringGrid ist da nicht ganz einfach (mein Empfinden).

    if(ACol-1 && !State.Contains(gdFixed)&& ACol-5)
      {
        // Falls nicht innerhalb der Auswahl:
        if(!State.Contains(gdSelected))
        {
          // Hintergrundfarbe auf gelb und die
          // Schriftfarbe auf rot setzen:
          Grid->Canvas->Brush->Color=clRed;
        }
        // Text linksbündig ausgeben:
        DrawCellText(Grid->Canvas, Grid->Cells[ACol][ARow], Rect, taLeftJustify);
      }
    

    Das war meibn bisheriger Quelltext dazu. Er ist nicht sehr hilfreich, da hier nur zwei bestimmte Spalten gändert werden, und das immer.



  • Hallo

    Dieser Code muß ja im Event TStringGrid::OnDrawCell-Event stehen, um überhaupt wirkung zu zeigen. Und genau dieser Event hat auch Parameter, deren Bedeutung du dir mal in der Builder-Hilfe anschauen solltest.

    bis bald
    akari



  • Darüber habe ich mich schon im Voraus informiert.



  • Hallo

    Offenbar aber nicht ausreichend genug.

    BCB-Hilfe zu TStringGrid::OnDrawCell schrieb:

    Die Parameter Col und Row beschreiben den Zeilen- und Spaltenindex der Zelle, die gezeichnet werden soll.

    Also must du nur die Parameter vergleichen und entsprechend die Zeichenoperationen ausführen.

    bis bald
    akari



  • Ich probiere es mal. Habe da wohl etwas überlesen. Danke dir akari.


Anmelden zum Antworten