Chodzi o DBGrida.
U mnie jest metoda textout (nie mam drawtext) dla canvasa.
dbgrid1.canvas.textout(x,y,'')
Chętnie bym porysował sobie bezpośrednio na canvasie, skąd jednak pobrać współrzędne kolumn, zliczać w pętli wszystkie poprzedzające właściwości width ?
x2:= dbgrid1.columns[0].width + dbgrid1.columns[1].width
czy jakoś łatwiej można ?
========================== EDIT ==========================
Rozwiązałem to w ten sposób ustawiając dodatkowo tekst pionowo:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
DBGrid1.Canvas.TextRect(rect,rect.left,80, dbgrid1.Columns[datacol].title.caption);
end;
Wszystko jest dobrze do czasu przewinięcia okna w bok, wtedy część tekstu znika, część się pojawia.
Rozwiązaniem jest DBGrid1.repaint, nie wiem jednak pod jakie zdarzenie to podpiąć żeby działało po przewinięciu poziomego scrolla.