Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#2

Re: FixedRow im Stringgrid auch unten ?

  Alt 18. Aug 2005, 10:55
Tja da hilft nur Überschreiben oder OnOwnerDraw.
Im DrawCell musst Du überprüfen, ob die zu zeichnende Zelle in der letzten dargestellten Zeile liegt (TopRow+VisibleRowCount). Wenn ja, musst Du anstatt inherited zu rufen die Zelle selber zeichnen.
Am besten geht das mit API-Rufen
Delphi-Quellcode:
  DrawEdge(Canvas.Handle,oRect,BDR_RAISED,
           BF_RECT Or BF_SOFT Or BF_ADJUST Or BF_MIDDLE);
  DrawText(Canvas.Handle,@_sText[1],1,oRect,DT_CENTER Or DT_VCENTER);
Die Aufrufe sind in der Unit Windows.
oRect ist das übergebene CellRect in der DrawCell und Text ist der anzuzeigende Summierungstext.
Wenn das Ganze noch mit den Themes zusammenspielen soll, musst Du erst fragen, ob Themes enabled sind (Unit Themes). Wenn ja, musst du Dir vom ThemeManager die ElementDetails geben lassen und über DrawElement dann ausgeben.
Soweit erstmal, um Dich auf die Spur zu schicken.. Näheres kannst du in der MSDN nachlesen.

p.s.: die Codezeilen sind für den Fall, dass Du Dir einen Nachfolger von TStringGrid machen willst.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat