以编程方式为 TcxTextEdit 设置验证选项
Programmatically set Validation Options for a TcxTextEdit
TcxTextEdit.Properties
下的 ValidationOptions
包含 evoRaiseException
、evoShowErrorIcon
和 evoAllowLoseFocus
.
如何将这些设置为 True
或 False
?
例如:
procedure TfrmMain.cxTextEdit1Exit(Sender: TObject);
begin
if cxTextEdit1.Text = EmptyStr then
begin
evoRaiseException := true; ????
end
end;
TcxTextEdit.Properties.ValidationOptions
定义为:
TcxEditValidationOptions = set of (evoRaiseException, evoShowErrorIcon, evoAllowLoseFocus);
TcxTextEdit.Properties.ValidationOptions
作为一个 set
它可以包含一个或多个在枚举中定义的值。
这允许只向集合添加一个值而不影响其他值:
procedure TForm1.cxTextEdit1Exit(Sender: TObject);
begin
if cxTextEdit1.Text = EmptyStr then begin
cxTextEdit1.Properties.ValidationOptions := cxTextEdit1.Properties.ValidationOptions + [evoRaiseException];//adds a value
end;
end;
这些是有效的分配:
cxTextEdit1.Properties.ValidationOptions := []; //empty
cxTextEdit1.Properties.ValidationOptions := [evoRaiseException, evoShowErrorIcon]; //assigns 2 values to the set
cxTextEdit1.Properties.ValidationOptions := cxTextEdit1.Properties.ValidationOptions - [evoRaiseException]; //removes a value
这会检查一个集合是否包含一个值:
if evoRaiseException in cxTextEdit1.Properties.ValidationOptions then
. . .
您并未将所有值分配给 True
或 False
,但这些值已添加到集合中或未添加到集合中。
aset
的元素是序数,其值可以通过System.Ord
函数获取:
anIntVariable := Ord(evoShowErrorIcon);
当 set
中的元素没有明确赋值时,元素以 0
开头。
一个值可以显式分配给 set
中的一个元素,如下所示:
TMyCustomSet = set of (mcsTriangle = 3, mcsHexagon = 6, mcsNonagon = 9);
另请参阅 Structured Types (Delphi) - Sets, System.Ord and System.Include and System.Exclude 用法示例。
TcxTextEdit.Properties
下的 ValidationOptions
包含 evoRaiseException
、evoShowErrorIcon
和 evoAllowLoseFocus
.
如何将这些设置为 True
或 False
?
例如:
procedure TfrmMain.cxTextEdit1Exit(Sender: TObject);
begin
if cxTextEdit1.Text = EmptyStr then
begin
evoRaiseException := true; ????
end
end;
TcxTextEdit.Properties.ValidationOptions
定义为:
TcxEditValidationOptions = set of (evoRaiseException, evoShowErrorIcon, evoAllowLoseFocus);
TcxTextEdit.Properties.ValidationOptions
作为一个 set
它可以包含一个或多个在枚举中定义的值。
这允许只向集合添加一个值而不影响其他值:
procedure TForm1.cxTextEdit1Exit(Sender: TObject);
begin
if cxTextEdit1.Text = EmptyStr then begin
cxTextEdit1.Properties.ValidationOptions := cxTextEdit1.Properties.ValidationOptions + [evoRaiseException];//adds a value
end;
end;
这些是有效的分配:
cxTextEdit1.Properties.ValidationOptions := []; //empty
cxTextEdit1.Properties.ValidationOptions := [evoRaiseException, evoShowErrorIcon]; //assigns 2 values to the set
cxTextEdit1.Properties.ValidationOptions := cxTextEdit1.Properties.ValidationOptions - [evoRaiseException]; //removes a value
这会检查一个集合是否包含一个值:
if evoRaiseException in cxTextEdit1.Properties.ValidationOptions then
. . .
您并未将所有值分配给 True
或 False
,但这些值已添加到集合中或未添加到集合中。
aset
的元素是序数,其值可以通过System.Ord
函数获取:
anIntVariable := Ord(evoShowErrorIcon);
当 set
中的元素没有明确赋值时,元素以 0
开头。
一个值可以显式分配给 set
中的一个元素,如下所示:
TMyCustomSet = set of (mcsTriangle = 3, mcsHexagon = 6, mcsNonagon = 9);
另请参阅 Structured Types (Delphi) - Sets, System.Ord and System.Include and System.Exclude 用法示例。