Delphi控制台应用程序:如何在消息对话框中添加OnHelp?

克里斯·威尔

我有一个Delphi控制台应用程序,可以更新服务器上的组件。它以半交互方式运行,偶尔会提示“您确定吗?” 等等,通过此代码:

MessageDlg('Are you sure?', mtConfirmation, [mbYes, mbNo, mbHelp], SOME_HELP_CONTEXT)...

如您所见,我想提供指向它的帮助链接,在这种情况下,请转到我们的网站,SOME_HELP_CONTEXT并附加到我们的帮助页面:?contextid=SOME_HELP_CONTEXT

我是通过GUI程序执行此操作的,我Application.OnHelp := myHelper;在哪里分配myHelper了一个对象的方法,该方法只需调用ShellExecute即可打开Web链接。

但是控制台应用程序中没有Application变量。

有没有相当简单的方法来实现这一目标?

塞塔克·阿奎兹(Sertac Akyuz)

由于使用的是Dialogs单位,因此您已经有了Application变量。因为,Dialogs使用Controls,它会初始化单元中Application变量Forms您要做的就是Forms在代码中另外使用该单元。

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Vcl.Dialogs, Vcl.Forms, Winapi.Windows;

type
  THelper = class
  protected
    function OnHelp(Command: Word; Data: THelpEventData; var CallHelp: Boolean): Boolean; virtual;
  end;

{ THelper }

function THelper.OnHelp(Command: Word; Data: THelpEventData;
  var CallHelp: Boolean): Boolean;
begin
  MessageBox(GetActiveWindow, PChar(Format('help request about "%d"', [Data])), '', 0);
  CallHelp := False;
end;

var
  Helper: THelper;
begin
  try
    Helper := THelper.Create;
    Application.OnHelp := Helper.OnHelp;
    MessageDlg('Are you sure?', mtConfirmation, [mbYes, mbNo, mbHelp], 5);
    Helper.Free;
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中从控制台应用程序显示MFC对话框?

来自分类Dev

如何在C ++中从控制台应用程序显示MFC对话框?

来自分类Dev

如何从带有Windows 7样式按钮的控制台应用程序中显示对话框?

来自分类Dev

如何使用控制台应用程序获取输出并将其显示到MFC对话框中StaticText

来自分类Dev

在C#中的控制台应用程序中使用的信息如何在消息框中写入相同的信息

来自分类Dev

如何在Angular应用程序中获取所有控制台错误消息

来自分类Dev

如何在应用程序中过滤RabbitMQ控制台侦听消息

来自分类Dev

如何在应用程序中添加打印对话框

来自分类Dev

如何在Symfony2控制台应用程序中添加辅助输出?

来自分类Dev

控制台应用程序如何在 Windows 10 核心输出包中添加?

来自分类Dev

在.net控制台应用程序中显示消息框

来自分类Dev

如何向控制台应用程序添加图标

来自分类Dev

如何使用PeekNamedPipe()从Delphi Code中读取运行控制台应用程序的错误

来自分类Dev

如何使用PeekNamedPipe()从Delphi Code中读取运行控制台应用程序的错误

来自分类Dev

如何在日志访问NGINX文件中添加控制台输出Node.js应用程序?

来自分类Dev

如何在日志访问NGINX文件中添加控制台输出Node.js应用程序?

来自分类Dev

如何退出/中断控制台应用程序中的Windows消息循环以及Windows桌面应用程序的引用?

来自分类Dev

如何将 vuetify 对话框添加到现有应用程序中?

来自分类Dev

如何在node.js控制台应用程序中应用模块模式?

来自分类Dev

如何在程序类(控制台应用程序)中访问变量

来自分类Dev

如何在MFC应用程序中动态创建对话框?

来自分类Dev

如何在应用程序android中的任何活动之上显示警报对话框

来自分类Dev

如何在应用程序android中的任何活动之上显示警报对话框

来自分类Dev

如何在 MFC Dialog 应用程序中插入更多对话框?

来自分类Dev

如何在C#中的控制台应用程序中激活代码的不同部分

来自分类Dev

Qt如何在Windows中的非控制台应用程序中使用main()?

来自分类Dev

如何在Windows Form应用程序中嵌入控制台?

来自分类Dev

如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

来自分类Dev

如何在Xamarin.iOS自己的应用程序中捕获控制台日志输出?

Related 相关文章

  1. 1

    如何在C ++中从控制台应用程序显示MFC对话框?

  2. 2

    如何在C ++中从控制台应用程序显示MFC对话框?

  3. 3

    如何从带有Windows 7样式按钮的控制台应用程序中显示对话框?

  4. 4

    如何使用控制台应用程序获取输出并将其显示到MFC对话框中StaticText

  5. 5

    在C#中的控制台应用程序中使用的信息如何在消息框中写入相同的信息

  6. 6

    如何在Angular应用程序中获取所有控制台错误消息

  7. 7

    如何在应用程序中过滤RabbitMQ控制台侦听消息

  8. 8

    如何在应用程序中添加打印对话框

  9. 9

    如何在Symfony2控制台应用程序中添加辅助输出?

  10. 10

    控制台应用程序如何在 Windows 10 核心输出包中添加?

  11. 11

    在.net控制台应用程序中显示消息框

  12. 12

    如何向控制台应用程序添加图标

  13. 13

    如何使用PeekNamedPipe()从Delphi Code中读取运行控制台应用程序的错误

  14. 14

    如何使用PeekNamedPipe()从Delphi Code中读取运行控制台应用程序的错误

  15. 15

    如何在日志访问NGINX文件中添加控制台输出Node.js应用程序?

  16. 16

    如何在日志访问NGINX文件中添加控制台输出Node.js应用程序?

  17. 17

    如何退出/中断控制台应用程序中的Windows消息循环以及Windows桌面应用程序的引用?

  18. 18

    如何将 vuetify 对话框添加到现有应用程序中?

  19. 19

    如何在node.js控制台应用程序中应用模块模式?

  20. 20

    如何在程序类(控制台应用程序)中访问变量

  21. 21

    如何在MFC应用程序中动态创建对话框?

  22. 22

    如何在应用程序android中的任何活动之上显示警报对话框

  23. 23

    如何在应用程序android中的任何活动之上显示警报对话框

  24. 24

    如何在 MFC Dialog 应用程序中插入更多对话框?

  25. 25

    如何在C#中的控制台应用程序中激活代码的不同部分

  26. 26

    Qt如何在Windows中的非控制台应用程序中使用main()?

  27. 27

    如何在Windows Form应用程序中嵌入控制台?

  28. 28

    如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

  29. 29

    如何在Xamarin.iOS自己的应用程序中捕获控制台日志输出?

热门标签

归档