Firmonkey Multiデバイスプロジェクトの他のフォームの上に表示するポップアップロードスクリーンを作成しました。今、私はロード・スクリーンがバックグラウンド・フォームで行うことで更新されないという問題を抱えています。これをどうすれば解決できますか?以下のコードでFiremonkeyはバックグラウンドで処理するフォームDelphi 10 Seattle
は、私が試したものの一例である:私はいくつかのマルチスレッドを行う必要があると思い
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
@RBAはい、そうです。しかしそれでも私の問題は解決しません。私のロードスクリーンのフォームは更新されません! – Remi
フォームが閉じられた後、コールバックメソッドは**と呼ばれます。閉鎖されたフォームにあなたが行ったことは誰にも見えません。 –