DBGrid selektierte Zeile farblich hinterlegen



  • Hallo,

    Ich möchte eine Zeile im DBGrid farblich hinterlegen, die ich mit der Maus anklicke.

    void __fastcall TMainForm::DBGridKundenDrawColumnCell(TObject *Sender,
          const TRect &Rect, int DataCol, TColumn *Column,
          TGridDrawState State)
    {
    POINT XYCell={Rect.Left,Rect.Top};
    TGridCoord cellColRow;
    ::ClientToScreen(DBGridKunden->Canvas->Handle,(LPPOINT)&XYCell);
    cellColRow=DBGridKunden->MouseCoord(XYCell.x,XYCell.y);
    
    if (State.Contains(gdSelected))
    {
    cellColRow.X = 1;
    zelle=true; //global
    }
    if(cellColRow.Y && zelle)
    {
    DBGridKunden->Canvas->Brush->Color = clInactiveCaption;
    }
    DBGridKunden->DefaultDrawColumnCell(Rect,DataCol,Column,State);
    if(cellColRow.X == 7)
    zelle = false;
    }
    

    Das funktioniert aber nur soweit wenn ich in die erste Spalte klicke oder die DBNavigator Komponente nehm um zum nächsten Datensatz zu springen.
    Klicke ich z.B. in Spalte 2 oder 3 werden die Zellen davor nicht gefärbt.


Anmelden zum Antworten