如何使dbgrideh1.columns[0]的输入长度不能大于4?如同edit的maxlength一样

maginn 2003-10-15 06:40:57
希望达到如同edit的maxlength一样的效果,
即没有办法输入第五个字符??
...全文
133 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
monkey968 2003-10-19
  • 打赏
  • 举报
回复
同意上面老兄的说法 最后还是做一个录入界面 这样什么问题都解决了
bjhjh 2003-10-19
  • 打赏
  • 举报
回复
up

beforepost好象不让改?

就是说,我写完事件代码,指定时没有此事件名称?

请指教!!!
zswangII 2003-10-15
  • 打赏
  • 举报
回复
//控制数据的存储最好还是控制DataSet而不是控制其所对应的数据控件~~
procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
//如果你的字段是整数类型可以这样~~
TIntegerField(Table1.FieldByName('整数字段')).MaxValue := 1000;
//如果你的字段是字符类型可以这样~~
TStringField(Table1.FieldByName('字符字段')).Size := 4;
end;
maginn 2003-10-15
  • 打赏
  • 举报
回复
其它的放开不算,
是不是想在dbgrid中实现像edit的maxlength一样的控制不能实现阿?

用户需求如下(起因)
用dbgrid完成 输入信息 ;其中一个字段是时间字段(分:妙)
我只能限制输入的为“数值”信息(dbgrid的keypress)
然后在beforepost中判断是否为正确的时间信息,如正确插入,错误 提示错误信息
问题是
正确的格式为 4位数,前两位位“十分”,后两位位“妙”
这样的话用户可以无限的输入多个数字,而只有当离开该cell时候,才发出错误提示信息
我像限制一下用户的输入,
或者当输入两个字符的时候能自动的出来一个“:”间隔一下

我也尝试用dbgrid。的一个colums 的buttonstyle设成cbsEliispe用一个maskedit来完成
然后在dbgride的ditbuttonclick完成

可出现的问题是
1:点击了dbgrid的需要设定的colums出现maskedit了,但是如何当在maskedit中
输入的信息转存到dbgrid中那(每次都出现问题)?在maskedit的exit中如何完成那?
2:如何控制maskedit每次显示的位置?在当前“cell”上?且仅用一个maskedit来完成
我不定个数的“行”的添加??

如能解决上面的问题也可
谢谢
47522341 2003-10-15
  • 打赏
  • 举报
回复
在dbgrid中的操作是对数据集的操作;除非你设定了该字段的长度为4;
然后在beforepost中给点提示还可以;
WGYKING 2003-10-15
  • 打赏
  • 举报
回复
最好建一个录入界面!
maginn 2003-10-15
  • 打赏
  • 举报
回复
不可以在dataset中设定
说,不能这样操作在一个开的数据集中
hthunter 2003-10-15
  • 打赏
  • 举报
回复
数据绑定的数据长度好像不能在数据集打开的状态下设置,否则会报错。
假如你要限制的长度跟数据库设计时的长度不一样,那只能在ADODataset等的Fields Editor里面修改相应字段的Size(并且只能小于或等于数据库字段的设计长度)。如果要限制的长度跟数据库设计的长度是一致的,那不需要做什么设置,DBGrid会自动根据字段的长度来做限制。
maginn 2003-10-15
  • 打赏
  • 举报
回复
这么写为什么不去
TEdit(dbgrid1.Columns[0]).Maxlength:=4;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧