Hallo,
durch den Beispielcode werden Zahlen mit 2 Nachkommastellen nur bei den Spalten 2 und 4 im Grid rechtsbündig angezeigt, Text wird linksbündig ausgegeben, Fehleingaben werden sichtbar.
Es ist kein weiterer Code in anderen Events erforderlich.
Delphi-Quellcode:
procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var p : PChar;
e : Extended;
begin
if not (gdFixed in State) then
if ACol in [2,4] then
begin
p := PChar(StringGrid.Cells[ACol,ARow]);
if TextToFloat(p,e,fvExtended) then
begin
p := PChar(FormatFloat('#,##0.00 ',e));
StringGrid.Canvas.FillRect(Rect);
DrawText(StringGrid.Canvas.Handle,p,-1,Rect,DT_RIGHT);
end;
end;
end;