数据敏感控件的可编辑长度是由数据库相关字段的大小决定的,谁知道delphi中是怎么实现的吗(贴出相关代码)?我想开发一个可编辑长度不根据字段大小的数据敏感控件该

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

fenian

Unregistered / Unconfirmed
GUEST, unregistred user!
数据敏感控件的可编辑长度是由数据库相关字段的大小决定的,谁知道delphi中是怎么实现的吗(贴出相关代码)?我想开发一个可编辑长度不根据字段大小的数据敏感控件该怎么做呢?(100分)<br />数据敏感控件的可编辑长度是由数据库相关字段的大小决定的,谁知道delphi中是怎么实现的吗(贴出相关代码)?我想开发一个可编辑长度不根据字段大小的数据敏感控件该怎么做呢?
 
有这个必要么?
可编辑长度不根据字段大小的数据敏感控件
如果输入长度超过数据库长度怎么办?
 
没有必要就不来问了,我开发了一个数据敏感控件,可对字典型的数据进行编辑,也就是录入编码,控件可自动根据编码在字典中查找对应的数据显示。可是现在用户要求不光根据编码过滤,也要根据对应的数据过滤,比如说 01 代表 中国,以前录入01,显示中国,但是存入数据库是01,该字段长度是2。现在用户要求能够录入中国,然后将01存入数据库
 
你只是要求显示而已呀,并不要求存入名称呀,只要存入代码就行了,你可以用select字查询就行了。
如果你要编辑的话可以在对应的字段的onGetText/onSetText里做相应的操作
 
imho,你理解错了,我是需要编辑的时候就可以录入对应名称,然后过滤实际代码,而不仅仅用在显示上。我也不是新手了,如果能用onGetText/onSetText就不拿上来问了。
大家也不要建议用什么隐藏的控件转换什么的,我这边的业务很复杂的,一时半会我也解释不清,反正完全可以排除用现有控件属性或者事件的方法来解决。
大家帮我想想数据敏感控件控制编辑长度的相关代码在哪儿吧。
 
TDBEdit中的在DataChange中
if FDataLink.Field &lt;&gt; nil then
begin
if FAlignment &lt;&gt; FDataLink.Field.Alignment then
begin
EditText := ''; {forces update}
FAlignment := FDataLink.Field.Alignment;
end;
EditMask := FDataLink.Field.EditMask;
if not (csDesigning in ComponentState) then
begin
if (FDataLink.Field.DataType in [ftString, ftWideString]) and (MaxLength = 0) then
MaxLength := FDataLink.Field.Size; //这里
end;
if FFocused and FDataLink.CanModify then
Text := FDataLink.Field.Text
else
begin
EditText := FDataLink.Field.DisplayText;
if FDataLink.Editing and FDataLink.FModified then
Modified := True;
end;
end else
begin
FAlignment := taLeftJustify;
EditMask := '';
if csDesigning in ComponentState then
EditText := Name else
EditText := '';
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部