TAcroPDF聚焦问题

时间:2018-03-21 11:21:23

标签: delphi setfocus

我希望迭代包含凭证图像的pdf文件夹。我正在查看TAcroPDF组件中的每个文件。用途可以查看凭证上写的金额,并可以将此金额输入文本框。按ENTER键时,将显示下一个凭证,我希望自动重新聚焦在textBox上。由于某种原因,即使ActiveControl是edtAmount,Form也没有将焦点传递给TEdit组件。

我在ShowImage函数之后尝试了edtAmout.SerFocus。我试过PostMessage和edtAnount.Perform。我有一个带有此代码的OnIdle Handler

  if not edtAmount.Focused then
    PostMessage(Handle, um_AmountFocus,0,0);

正在处理所有的编辑。我所缺少的是为什么TAcroPDF似乎占据了焦点。

我可以手动双击进入TEdit,但我需要一个用户密集程度较低的解决方案

2 个答案:

答案 0 :(得分:2)

抱歉延迟回复。我发现有一件事是使用TTimer;在调用LoadFile后启用Timer,并在Timer事件中将焦点设置为edtAmount。在我的情况下,定时器延迟500毫秒似乎有效。在SetFocus调用后禁用计时器。

答案 1 :(得分:0)

使用LoadFile方法导致焦点问题

  AcroPDF1.LoadFile(PDFFileName); //was the source of the focusing problem

使用

 AcroPDF1.src:=PDFFileName;

代替。