我将组件放到表单上,并编写了以下代码:
OpenDialog.Execute;
WebLabel1.Caption := OpenDialog.FileName;
它打开了TWebOpenDialog
,但没有将FileName
放入标签的Caption
中。
看起来OpenDialog.FileName
是空的,虽然当我再次选择Execute
时,OpenDialog.FileName
包含FileName
,但它是前一次选择的FileName
。
如何在TMS Web Core中使用TWebOpenDialog
?
1条答案
按热度按时间weylhg0b1#
在TMS Web Core(JavaScript)中,每行都是异步和/或非阻塞的。
所以
Execute
不会等待用户选择文件,它会立即运行下一行WebLabel1.Caption := OpenDialog.FileName;
,因此FileName
是空的。要解决这个问题,您需要在
TWebOpenDialog
组件上使用onChange
事件。因此,您可以将WebLabel1.Caption := OpenDialog.Files[0].Name;
添加到onChange事件中以获取FileName
:来源:https://youtu.be/-tHOyl7NZho?si=cB1cs8MHeIKo3P_0