gpt4 book ai didi

delphi - OnShow 事件后自动启动操作的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 14:37:32 31 4
gpt4 key购买 nike

我有一个小型应用程序,大多数时候在“开始”按钮后面有一个操作,应该从命令行参数/AUTORUN 触发。如果该参数丢失,用户也可以手动按下它。

我的问题是我应该在哪里放置此命令行检查,以便在给出时 GUI 仍然更新。当前的解决方案是这样的,但是直到操作完成后 GUI 才会更新。

procedure TfrmMainForm.FormShow(Sender: TObject);
begin
if FindCmdLineSwitch('AUTORUN') then
btnStart.Click;
end;

最佳答案

向自己发布来自 OnShow 事件处理程序的消息。一旦您的应用程序开始为其消息队列提供服务,就会对此进行处理。仅当应用程序准备好接收输入时才会发生这种情况。这符合您我对您的要求的理解。

const
WM_STARTUP = WM_USER;
....
procedure TfrmMainForm.FormShow(Sender: TObject);
begin
PostMessage(Handle, WM_STARTUP, 0, 0);
OnShow := nil;//only ever post the message once
end;

添加消息处理程序来处理消息:

procedure WMStartup(var Msg: TMessage); message WM_STARTUP;

你可以这样实现:

procedure TfrmMainForm.WMStartup(var Msg: TMessage);
begin
inherited;
if FindCmdLineSwitch('AUTORUN') then
btnStart.Click;
end;

关于delphi - OnShow 事件后自动启动操作的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318807/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com