如何在 Delphi TMS Web Core中使用TWebOpenDialog?

mlnl4t2r  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(101)

我将组件放到表单上,并编写了以下代码:

OpenDialog.Execute;
WebLabel1.Caption := OpenDialog.FileName;

它打开了TWebOpenDialog,但没有将FileName放入标签的Caption中。
看起来OpenDialog.FileName是空的,虽然当我再次选择Execute时,OpenDialog.FileName包含FileName,但它是前一次选择的FileName
如何在TMS Web Core中使用TWebOpenDialog

weylhg0b

weylhg0b1#

在TMS Web Core(JavaScript)中,每行都是异步和/或非阻塞的。
所以Execute不会等待用户选择文件,它会立即运行下一行WebLabel1.Caption := OpenDialog.FileName;,因此FileName是空的。
要解决这个问题,您需要在TWebOpenDialog组件上使用onChange事件。因此,您可以将WebLabel1.Caption := OpenDialog.Files[0].Name;添加到onChange事件中以获取FileName

procedure TForm1.WebButton1Click(Sender: TObject);
begin
  OpenDialog.Execute;
end;

procedure TForm1.OpenDialogChange(Sender: TObject);
begin
  WebLabel1.Caption := OpenDialog.Files[0].Name;
end;

来源:https://youtu.be/-tHOyl7NZho?si=cB1cs8MHeIKo3P_0

相关问题