控制TStringGrid的编辑格式(50分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想控制TStringGrid的每一列的编辑格式,比如某一列只能输入数字,某一列输入宽度不超过20个字符...
我应该如何做呢?
 
可以,要修改inplaceEdit,我换个电脑回答你,我现在用手提电脑上网,没有delphi
 
你可以在TStringGrid中的OnKeyPress下做处理,判断输入的字符是否是当前列中数据格式中合法的字符输入,否则Abort;
 
同意陈健松的方法
 
在OnGetEditMask,OnGetEditText事件中可以控制输入格式和长度:
例:
procedure TFrmMain.InputGridGetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
if Length(Trim(InputGrid.Cells[2,ARow]))=14 then InputGrid.Cells[2,ARow]:=Copy(Trim(InputGrid.Cells[2,ARow]),1,13);
if Length(Trim(InputGrid.Cells[2,ARow-1]))=14 then InputGrid.Cells[2,ARow]:=Copy(Trim(InputGrid.Cells[2,ARow-1]),1,13);
end;

procedure TFrmMain.InputGridGetEditMask(Sender: TObject; ACol,
ARow: Integer; var Value: String);
begin
Case ACol of
2: Value:='>L00/-0000/-0000/-0000;1;';
3: Value:='>L;1;';
end;
end;

 
后退
顶部