Forms 如何在Delphi中将Windows窗体移植到控制台应用程序
我已经在Windows窗体中使用ScktComp和Winsock创建了一个聊天服务器。如何在控制台应用程序中进行相同的操作 我发现这是一个错误,但是,里面的链接(该线程的作者回答为“几乎完美的答案”)已经过期Forms 如何在Delphi中将Windows窗体移植到控制台应用程序,forms,delphi,console-application,delphi-2010,Forms,Delphi,Console Application,Delphi 2010,我已经在Windows窗体中使用ScktComp和Winsock创建了一个聊天服务器。如何在控制台应用程序中进行相同的操作 我发现这是一个错误,但是,里面的链接(该线程的作者回答为“几乎完美的答案”)已经过期 控制台应用程序中的ServerSocketClientConnect/ClientSocketConnect和其他方法的等价物是什么?Delphi在控制台应用程序中使用相同的类和非可视组件。您不需要更改所使用的类,但是您需要学习如何通过手动输入来向单元添加内容,而不是依赖delphiide
控制台应用程序中的
ServerSocketClientConnect
/ClientSocketConnect
和其他方法的等价物是什么?Delphi在控制台应用程序中使用相同的类和非可视组件。您不需要更改所使用的类,但是您需要学习如何通过手动输入来向单元添加内容,而不是依赖delphiide为您生成代码
您可以使用以下步骤自己创建它们,也可以使用在控制台应用程序中使用包含非可视组件的VCL Win32 GUI应用程序时已构建的数据模块
步骤:
var
aSomething:TSomething;
begin
aSomething := TSomething.Create(Parameter1,Parameter2);
end;
aSomething.Free;
看看真正的TCP/IP库,比如Indy、ICS、Synapse或其他任何东西,除了组件调色板“Internet”页面中的组件,这些组件不适合在除“玩具”以外的任何规模的真实世界中使用。一些VCL类需要Windows消息循环和/或窗口句柄。因此,如果更改应用程序类型,它们可能会停止工作
还要检查现有代码是否使用
同步
在VCL主线程中运行代码。在非VCL应用程序中使用同步可能非常困难。这是非常广泛的。什么特别的方面困扰着你?那页上的链接很糟糕,因为网站的论坛软件在2002年3月到今天的某个时候改变了它的URL结构。相关帖子仍然存在:搜索短语^gLes TMyEvents
(即用户gLes发布的关于TMyEvents的帖子)。如果您对Windows特定的控制台TCP/IP演示感兴趣,几年前ICS为它提供了一个很好的设置和框架。请注意,它可能比这更复杂,因为您可能需要创建一个消息泵。ICS TApplication衍生产品为您提供了这一功能(单位为conapp,称为IIRC)。值得一看的是,即使你使用不同的socket SuiteSkys作为建议,这也是我一直在寻找的出发点。你知道INDY在控制台应用程序中是否工作良好吗?我知道TTimer需要一个消息句柄,但你仍然可以在控制台应用程序中使用Win32消息句柄,对吗?你就是不能创建可见的窗口。我非常确定,因为AppType是不会阻止对CreateWindow调用的控制台。:-)@是的,我在控制台应用程序或服务中使用Indy TCP客户端。通常,只要不使用异步Winsock API方法,就不需要windows句柄。