Announcement

Collapse
No announcement yet.

Stringgrid einfärben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stringgrid einfärben

    Hallo,

    ich möchte Zeilen oder Zellen abhängig vom enthaltenen Text einfärben, leider komme ich mit der Delphi Hilfe nicht weiter.

    Hat jemand ein Beispiel, an dem ich mir das erarbeiten kann.

    Gruß

    Heiko

  • #2
    Hallo,

    das folgende Beispiel demonstriert dies. Die TDBGrid-Eigenschaft <b>DefaultDrawing</b> muss deaktiviert werden.
    <pre>
    <font color="#003399"><i>{ DefaultDrawing = FALSE }</i></font>
    <br>
    <b>procedure</b> TFormSearch.DBGrid1DrawColumnCell(Sender: TObject;
    <b>const</b> Rect: TRect; DataCol: Integer; Column: TColumn;
    State: TGridDrawState);
    <b>begin</b>
    <b>with</b> Sender <b>as</b> TDBGrid <b>do</b>
    <b>begin</b>
    <b>if</b> Columns[DataCol].FieldName = <font color="#9933CC">'status'</font> <b>then</b>
    <b>begin</b>
    Canvas.FillRect(Rect);
    <b>if</b> Columns[DataCol].Field.Value = 1 <b>then</b>
    ImageList1.Draw(Canvas, Rect.Left + 4, Rect.Top, 1, True)
    <b>else</b>
    <b>begin</b>
    <b>if</b> Columns[DataCol].Field.Value = 2 <b>then</b>
    ImageList1.Draw(Canvas, Rect.Left + 4, Rect.Top, 2, True)
    <b>else</b>
    ImageList1.Draw(Canvas, Rect.Left + 4, Rect.Top, 3, True);
    <b>end</b>;
    <b>end</b>
    <b>else</b>
    <b>begin</b>
    <b>if</b> Columns[0].Field.Value = 1 <b>then</b>
    <b>begin</b>
    TDBGrid(Sender).Canvas.Brush.Color := $F0FFF0;
    <b>if</b> <b>not</b> (gdselected <b>in</b> State) <b>then</b>
    TDBGrid(Sender).Canvas.Font.Color := clBlack
    <b>else</b>
    TDBGrid(Sender).Canvas.Font.Color := clBlue;
    <b>end</b>
    <b>else</b>
    <b>begin</b>
    TDBGrid(Sender).Canvas.Brush.Color := $CCCCCC;
    <b>if</b> <b>not</b> (gdselected <b>in</b> State) <b>then</b>
    TDBGrid(Sender).Canvas.Font.Color := clBlack
    <b>else</b>
    TDBGrid(Sender).Canvas.Font.Color := clRed;
    <b>end</b>;
    DefaultDrawColumnCell(Rect, DataCol, Column, State);
    <b>end</b>;
    <b>end</b>;
    <b>end</b>;
    </pre&gt

    Comment

    Working...
    X