【发布时间】:2016-03-29 07:51:55
【问题描述】:
我创建了一个弹出式加载屏幕表单,我想在 Firmonkey Multi 设备项目中显示在任何其他表单上方。现在我遇到了加载屏幕没有更新我在后台表单中所做的事情的问题。我该如何解决这个问题?
下面的代码是我尝试过的示例:
procedure TForm1.Button1Click(Sender: TObject);
var
loadScreen:TfrmLoadScreen;
begin
loadScreen := TfrmLoadScreen.Create(nil);
loadScreen.ShowModal(
procedure(ModalResult: TModalResult)
var
i:Integer;
begin
for i := 0 to 200 do
begin
loadScreen.CurrentItem := i;
loadScreen.TextMessage := 'Item:' + loadScreen.CurrentItem.ToString;
Sleep(100);
end;
ModalResult := mrCancel;
end);
end;
我想我必须做一些多线程,但我没有任何经验这样做!我应该如何为我的加载屏幕执行此操作?
我也尝试了以下方法,但没有显示表单:
procedure TForm1.Button1Click(Sender: TObject);
var
loadScreen:TfrmLoadScreen;
begin
loadScreen := TfrmLoadScreen.Create(nil);
loadScreen.OnShow := FormShowLoadScreen;
loadScreen.Show;
end;
procedure TForm1.FormShowLoadScreen(Sender: TObject);
var
i:Integer;
loadScreen:TfrmLoadScreen;
begin
loadScreen := TfrmLoadScreen(Sender);
for i := 0 to 200 do
begin
loadScreen.CurrentItem := i;
Sleep(100);
end;
loadScreen.Close;
end;
【问题讨论】:
-
要关闭模态表单,请将其 ModalResult 属性设置为非零值。
-
@RBA 是的,这是真的。但这仍然不能解决我的问题。我的加载屏幕表单没有更新!
-
表单关闭后调用回调方法。任何人都看不到您在封闭表单上所做的一切
-
@SirRufo 是的,我想。但是我把我的代码放在哪里呢?我也尝试过只显示表单并在之后执行 for 循环,但这也不起作用。
标签: delphi background popup firemonkey delphi-10-seattle