如何解决一个消息接收过程中的Excel控制代码的错误?

收到消息时,我尝试在Excel工作表上打印某些内容。

我使用Windows 10和Delphi 10西雅图。

这个代码运行良好。

procedure TForm1.Button1Click(Sender: TObject); begin Worksheet.Cells.Item[1, 1] := 1; end; 

但是这并不是,因为应用程序正在调度一个input同步调用,所以不能进行一个外向调用。

 procedure TForm1.onMessageReceived(var message: TMessage); begin Worksheet.Cells.Item[1, 1] := 1; end; 

相同的代码,但根据实施的程序不同的结果。

我该如何解决?

如果您控制消息发件人,请考虑将其从使用SendMessage()更改为使用PostMessage()代替。

否则,在消息处理程序中,存储您收到的信息并使用Application.OnIdle事件将其传递到Excel。