@tamnicar
U onaj drugi primer treba da se doda provera kako je poravnat tekst u koloni:
Code:
const
TextDist = 3;
...
...
if Column.Alignment = taLeftJustify then
TDBGrid(Sender).Canvas.TextOut(Rect.Left + TextDist, Rect.Top, Column.Field.AsString)
else if Column.Alignment = taRightJustify then
TDBGrid(Sender).Canvas.TextOut(Rect.Right - TDBGrid(Sender).Canvas.TextWidth(Column.Field.AsString) - TextDist, Rect.Top, Column.Field.AsString)
else
TDBGrid(Sender).Canvas.TextOut((Rect.Right - Rect.Left - TDBGrid(Sender).Canvas.TextWidth(Column.Field.AsString)) div 2 + Rect.Left, Rect.Top, Column.Field.AsString);
Ovo mozes da stavis u poseban unit i svakoj Dbg u projektu dodelis za OnDrawColumnCell, onda svi gridovi ce se isto iscrtavati. Lose je koristiti specijalizovano npr. DBGrid1 kda imas Sender. Takodje treba da TDBGrid.DefaultDrawing stavis na false.
Btw. jel zna neko kako bez pisanja f-je koja sabira sirine column-a dobiti zbirnu sirinu svih polja (potrebno za iscrtavanje focucRect sa ivicama).