是否可以创建一个“应用程序组”,它可以在一个窗口下运行,但是在单独的进程中,如在Chrome浏览器中?我想将一个应用程序分成多个部分,这样一个崩溃或干扰过程就无法取消其他应用程序,但仍然保持外观和感觉尽可能接近原始系统。
我知道可以使用Chrome源代码,但是还有为Delphi准备的一半吗?
答案 0 :(得分:7)
我想基本上你会创建多个进程,每个进程都会创建一个窗口/表单。其中一个进程具有主窗口,其中嵌入了每个子窗口。这就像调用SetParent一样简单。不同进程中的窗口将使用IPC(进程间通信)机制(如named pipes或窗口消息)相互通信。
有关在Delphi中使用SetParent的嵌入示例,请参阅this question。有关在Delphi中使用命名管道的示例,请参阅this question。
答案 1 :(得分:7)
查看Delphi code的HeidiSQL。它是一个很好的开源MySQL客户端,可以实现这种机制。
阅读Chrome发布时发布的这个新网站:
"Google playing catch-up with HeidiSQL?"
: - )
(来源:heidisql.com)
答案 2 :(得分:4)
Harriv,您可以使用基于plugins的方案。你有一个主应用程序和这个动态加载新闻功能。这里有几个库我留下了一些。
<强>框架强>
<强>教程强>
再见。
答案 3 :(得分:4)
看看:http://blogs.microsoft.co.il/blogs/maxim/archive/2008/09/23/curiosity-killed-the-programmer-multiprocess-browser.aspx。该应用程序的源代码是CSharp。我相信你可以让它适应德尔福。
答案 4 :(得分:-1)
您可以分离应用程序逻辑并在多个线程中执行它。这样,如果应用程序逻辑的一部分挂起,您仍然有一个响应式应用程序。但是你无法将GUI放在多个线程中。 VCL要求您在主线程中执行所有与GUI相关的东西。
答案 5 :(得分:-5)
我不确定Delphi如何运行,但多进程编程的标准程序是分叉。
使用您想要的任何代码分叉新进程。将信息传递给分叉进程,让它运行它想做的任何事情。
无法在一个线程响应中解释多进程编程。但仔细看看。