Hi, also mal vorab ich bin Lazarus - Anfänger.
Ich muss mich auch bald mit so einer Frage befassen.
Würde da 2 Möglichkeiten in Erwägung ziehen.
1. Über eine VIEW am SQL Server ( oder wo auch immer ) die gleich aus 0 --> STk oder aus 1 --> Gramm macht.
Das würde ich z.B. machen.. Man spart sich dann immer gleich das Code Gefrickel.
VIEWS sind im Bezug auf Performance wohl immer die Beste Lösung ( Meine MEinung )
2. Über das .DBGrid1DrawColumnCell Ereignis.
( Keine Ahnung wie performant das sein wird

)
ungetest auf die Art :
Code: Alles auswählen
procedure TDEINFORM.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with (Sender as TDBGrid) do
//EINHEIT
If Column.Index = 0 then // DEIN INDEX FELD
begin
with dbgrid1.canvas do
begin
// wenn der Wert von EINHEIT nur 1 oder 0 ist
if dbgrid1.DataSource.DataSet.FieldbyName('EINHEIT').asString = '0' then
begin
fillRect(rect);
dbgrid1.Canvas.Font.height := -14;
dbgrid1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,'STK');
end else
begin
fillRect(rect);
dbgrid1.Canvas.Font.height := -14;
dbgrid1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,'GRAMM');
end;
end;
end;
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
End;
Bin auch sehr gespannt was die Antwort der Profis hierauf sein könnte !
Lg Bernie