dgColumnResize heißt: Die Feldern zugeordneten Spalten können in der Größe geändert oder verschoben werden. Anwender können in der Anzeige die Spaltenbreite ändern. Wenn Du mit der Maus in der Titelzeile die Spaltenbreite ändern kannst, sollte das ok sein.
Delphi-Quellcode:
lb.Caption := DBGrid_Trades.Columns[i].Field.AsString;
DBGrid_Trades.Columns[i].Width := lb.Width;
lb ist ein TLabel, bei dem AutoSize auf true steht. Wenn der Caption des Labels ein Text zugewiesen wird, berechnet das Label die erforderliche Breite, um den Text vollständig anzeigen zu können und verändert seine eigene Breite. Die vom Label berechnet Breite wird dann als Spaltenbreite für die Spalte des DBGrid genommen.
Um einen Text in einer Zelle auszugeben, könntest Du im Ereignis OnDrawColumnCell z. B. sowas machen:
DBGrid1.Canvas.TextRect(Rect,2,4,'Dein Text + Feldinhalt: ' + Column.Field.AsString);
Dabei gibt Rect die Koordinaten der Zelle an. 2 ist die X-Koordinate für die Ausgabe, 4 die Y-Koordinate der Ausgabe. Hier kannst Du auch 0 oder andere Werte angeben, um den Text in der Zelle nach Deinen Wünschen zu positionieren. Als vierten Parameter kannst Du eigenen Text ausgeben, oder den Text aus der Zelle oder eine Kombination daraus.