Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在';重新打字?德尔福xe2_Delphi_Delphi Xe2 - Fatal编程技术网

Delphi 在';重新打字?德尔福xe2

Delphi 在';重新打字?德尔福xe2,delphi,delphi-xe2,Delphi,Delphi Xe2,由于正在键入的文本尚未保存,以下代码不起作用: DBGrid1.Columns [Col]. Field.AsString; 如何在dbgrid中获取文本,而不是直接从数据集获取文本 这样做的目的是我需要控制实时输入的内容 我不应使用:   在邮寄之前。 OnValidate 一旦改变 谢谢 你不能。它使用一个在列进入编辑模式时在内部创建的内置编辑器,然后立即释放。从用户可用性的角度来看,“实时”控制数据输入通常是一个非常糟糕的想法。也许有更好的方法来验证,但你没有提供足够的细节让我提出建议。

由于正在键入的文本尚未保存,以下代码不起作用:

DBGrid1.Columns [Col]. Field.AsString;
如何在dbgrid中获取文本,而不是直接从数据集获取文本

这样做的目的是我需要控制实时输入的内容

我不应使用:   在邮寄之前。 OnValidate 一旦改变


谢谢

你不能。它使用一个在列进入编辑模式时在内部创建的内置编辑器,然后立即释放。从用户可用性的角度来看,“实时”控制数据输入通常是一个非常糟糕的想法。也许有更好的方法来验证,但你没有提供足够的细节让我提出建议。事实上,“你不能”并不完全正确。您可以创建自己的
TDBGrid
的子代,并重写它的
CreateEditor
,以返回自己的编辑器实现,该实现允许您执行任何您想要的操作,并允许从外部访问它。“您不能”是指“使用标准TDBGrid”,在该字段中应为“您不能,AFAICT,使用标准
TDBGrid
”,我已经控制键入的键。。。仅接受“0…”。。9'和','。此字段将接受以逗号分隔的“n”个电话号码。例如:9800450088004009045000,所以我想限制用户何时输入…以避免错误,例如:两个重复的逗号或少于8个字符的电话。明白了吗?控制数据库字段中编辑文本的正确方法是使用
TField.EditMask
属性,或使用
OnValidate
事件。我“明白了”,但试图在专栏中这样做是行不通的。:-)让用户在字段中输入他们想要的内容,并在适当的时间进行验证。如果是错误的,在他们解决问题之前不要让他们发布他们的更改;我已经在onBeforePost上进行了验证。但是我想要一种更好的方式在输入文本时与用户交互。我在这里再试试。