当我第一次打开表单时,没有违规情况,但是当我首先选择一个TEdit字段,然后关闭表单,然后重新创建表单并打开它时,就会出现违规情况。
创建表单的代码:
procedure TfrmNocoreDKS.actConfigExecute(Sender: TObject);
var
confForm: TConfiguratie;
begin
confForm := TConfiguratie.Create(nil);
confForm.ShowModal(
procedure(ModalResult: TModalResult)
begin
confForm.DisposeOf;//Also tried confForm.Free;
end);
end;
我也尝试了以下方法来创建表单:
procedure TfrmNocoreDKS.actConfigExecute(Sender: TObject);
var
confForm: TConfiguratie;
begin
confForm := TConfiguratie.Create(nil);
try
confForm.ShowModal(
procedure(ModalResult: TModalResult)
begin
end);
finally
confForm.free;
end;
end;
关闭表单的代码:
procedure TConfiguratie.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := TCloseAction.caFree;
end;
由于违规只在您单击任何TEdit并关闭窗体时出现,我认为它与虚拟键盘有关,但我不确定。我没有使用虚拟键盘本身的任何方法。
DisposeOf()
。请参阅Android上的ShowModal了解详情。 - LU RD