如何定制DBGrid的输入宽度(100分)

  • 主题发起人 主题发起人 first
  • 开始时间 开始时间
F

first

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的数据库是Access,DBGrid的数据为动态查询所得,请教如何定制
数据值型的输入宽度.
 
DBGRID.COLUMNS.WIDTH:=YOUR WIDTH
 
对不起arm,不是通过改变表格列宽来限制.
 
以table为例(query一样)
你新建个字段。tablenewfild
再设置它的editmask属性,就可以了。
 
设置字段的editmask属性,你在DBGrid中给字段输入值
后,把输入焦点移至下一列,然后在移至刚才输入值的单
元格清空它,在把焦点移开会出现 ""is not a vaild
integer value for field
 
我愿在加50分,求解此问题.
 
你在access限定字段大小不就可限定输入宽度了么?
 
canson 在Access中数值型只能定义类型不能定义宽度.
 
你可以设置字段的宽度(Size)就行了。
对于字段的校验,可以这样:
放一个DBEdit,不用MaskEdit,然后在此DBEdit的OnExit事件中加入:

Case Table1.FieldByName('XXX').DataType of
ftInteger:
try
StrToInt(DBEdit1.Text);
except
ShowMessage('无效的整数!');
Abort;
end;
ftDate:
try
StrToDate(DBEdit1.Text);
except
ShowMessage('无效的日期!');
Abort;
end;
ftCurrency:
try
StrToCurr(DBEdit1.Text);
except
ShowMessage('无效的金额!');
Abort;
end;
end;

意思就是这样,明白吗?(这段代码要根据你的具体情况来改)
还可以把DBEdit放到DBGrid上,盖住DBGrid,这样就更个性化了。
 
你好sachow 设置字段的宽度(Size)不能限制输入的宽度.
我用的是DBGrid数据源控件是Query,数据为动态查询所得,
DBGrid的TColumn没有事件只有属性,同时DBGrid为多行显示
把DBEdit倥件盖在DBGrid上行吗 ????
 
你的意思是dbGrid自动适应实际字段文字的宽度吧
dbGrid好象没有这个功能,若知道请别完了告诉我。
 
把一个DBEdit盖在DBGrid上是我从VB编程中得到的一个体会,具体实现方法是在
DBGrid的OnKeyDown事件中进行判断。如果按的键是方向键,则DBEdit就移动到
相应的网格上,而且DBEdit的宽度要根据相应DBGrid的宽度作出改变(要检测
DBGrid的宽度),要如果按数字或字母键,DBEdit就对数据集进行编辑,这样,
真正接受输入的就不是DBGrid而是DBEdit,实现进来虽然麻烦,但可以实现很
多灵活性,例如限制输入字串的长度、类型等。
 
补充一句,DBEdit要放在处于焦点位置的那一个网格上,而不是盖住整个DBGrid。
 
想知道怎样限制小数位的输入。
 
宽度在设计时可以调节。请问高度怎么自定义??
 
最好用TDBCtrlGrid控件,然后在上放置TDBEdit控件,在DBEdit.MAxlength定义长度
应该会用此控件吧
 
接受答案了.
 
后退
顶部