AdvStringGrid 输入中改变格式!解决办法

AdvStringGrid 输入中改变格式!
我希望实现以下操作:
在AdvStringGrid中输入:
输入 显示
1 : 1
12 : 12
123 : 123
1234 : 1,234
......
我写了个加“,”的函数(SetData)和去“,”的函数(ResumeData),在KeyUp中是这样用的: 
  r := AdvStringGrid1.Row;
  c := AdvStringGrid1.Col;
  AdvStringGrid1.Cells[c, r] := SetData(ResumeData(TmpStr));
不能实现;
但在Edit的KeyUp中用: Edit1.Text := SetData(ResumeData(Edit1.Text));
却可以实现,请大家帮帮忙,谢谢!

------解决方案--------------------
给你写好了,可以给分了
var
Form1: TForm1;
ECol,Erow:integer;
implementation

{$R *.dfm}
function aa(s:string):string;
var
left,i,n:integer;
begin
n:=ceil(length(s)/3);
if n>1 then
begin
left:=length(s) mod 3;
result:=copy(s,1,left);
for i:=1 to n-1 do
result:=result+','+copy(s,left+(i-1)*3+1,3);
end else result:=s;
end;

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
begin
ECol:=ACol;
ERow:=ARow;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
StringGrid1.Cells[ECol,ERow]:=aa(StringGrid1.Cells[ECol,ERow]);
end;
------解决方案--------------------
设置GetFloatFormat事件就可以达到你的要求

procedure TForm1.AdvStringGrid1GetFloatFormat(Sender: TObject; ACol,
ARow: Integer; var IsFloat: Boolean; var FloatFormat: String);
begin
IsFloat := ACol in [1,2,3];
FloatFormat := '%8.2n';
end;