当用户离开时,我必须检查 TEdit->Text 的值,如果该值错误,则将他返回到 TEdit。下面的代码在 VCL 中运行良好,但在 FMX 中不起作用。所以它发出哔哔声但不返回。
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
if (Edit1->Text != "123")
{
Beep();
Edit1->SetFocus();
}
}
它是一个简单的形式,只有 2 个 TEdit。我做错了什么以及如何做对?
我将在 Delphi Firemonkey 中提供一个解决方案。希望相同的原则适用于 C++ Firemonkey。以下代码将 Edit1 中的无效文本替换为“Invalid”一词,并将焦点返回到 Edit1,并选择“Invalid”以备重印。
procedure TForm1.Edit1Validate(Sender: TObject; var Text: string);
begin
if Text <> '123' then
begin
Text := 'Invalid';
TThread.CreateAnonymousThread(
procedure
begin
TThread.Synchronize(nil,
procedure
begin
Edit1.SetFocus;
end);
end).Start;
end;
end;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句