正是这种代码的和平给了我麻烦,因为我不知道在哪里写它。
object IdTCPServer1: TIdTCPServer
CommandHandlers = <
item
Command = 'test'
Name = 'TIdCommandHandler0'
ParseParams = False
ReplyNormal.NumericCode = 100
ReplyNormal.Text.Strings = (
'Hello from your Indy Server')
ReplyNormal.TextCode = '100'
end
答案 0 :(得分:5)
这是表单的DFM文件的一部分,其中包含一个名为TIdTCPServer
的非可视组件。只需在表单上放置这样的组件,然后使用属性编辑器将属性设置为给定值。例如,您必须添加命令处理程序(使用CommandHandlers
属性)并将其Command
属性设置为“test”。
答案 1 :(得分:1)
这是DFM文件的一部分,您不直接编辑它。我刚刚在表单上放置了一个TIdTCPServer,DFM显示:
object IdTCPServer1: TIdTCPServer
Bindings = <>
DefaultPort = 0
Left = 80
Top = 112
end
如果您右键单击表单并选择“以文本形式查看”(或者如果您在编辑器中检查.DFM文件,如果您已将配置设置为保存),则可以自行查看他们是文本。
当您开始填写TIdTCPServer的更多(非默认)属性时,Delphi也会将这些属性存储在DFM中。我没有在我的Delphi版本(XE2,Indy 10.5.8.0)中看到CommandHandlers属性,但是你的有一个(在这个例子中)。
[编辑添加]我从你对另一个答案的评论中看到你没有TIdTCPServer的CommandHandlers属性,这可能表明该书作者使用了与你不同的Indy版本。您可以通过右键单击表单上的任何Indy组件来查看您的版本。
CommandHandlers确实很老。 Googling "tidtcpserver commandhandlers"导致例如"The CommandHandlers collection was moved to a new TIdCmdTCPServer component in Indy 10."这让我怀疑你有Indy 10,书中引用了9本书。你必须找到Indy 10个例子来说明你想要做什么。 That should not be too difficult