以编程方式为TcxTextEdit设置验证选项

时间:2016-02-01 12:57:13

标签: delphi delphi-xe2

ValidationOptions下的

TcxTextEdit.Properties包含evoRaiseExceptionevoShowErrorIconevoAllowLoseFocus

如何将这些内容设置为TrueFalse

例如:

procedure TfrmMain.cxTextEdit1Exit(Sender: TObject);
begin
  if cxTextEdit1.Text = EmptyStr then
    begin
      evoRaiseException := true; ????
    end
end;

1 个答案:

答案 0 :(得分:3)

TcxTextEdit.Properties.ValidationOptions定义为:

TcxEditValidationOptions = set of (evoRaiseException, evoShowErrorIcon, evoAllowLoseFocus);

TcxTextEdit.Properties.ValidationOptionsset,它可以包含枚举中定义的一个或多个值。

这允许仅向集合中添加值而不影响其他值:

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
  . . .

您不能将所有值分配到TrueFalse,但这些值会添加到集合中,或者不会添加到集合中。

set的元素是可以通过System.Ord函数获取其值的序数:

anIntVariable := Ord(evoShowErrorIcon);

如果没有为set中的元素指定显式值,则元素以0开头。

可以将值显式分配给set中的元素,如下所示:

TMyCustomSet = set of (mcsTriangle = 3, mcsHexagon = 6, mcsNonagon = 9);

另请参阅Structured Types (Delphi) - SetsSystem.OrdSystem.Include and System.Exclude用法示例。