procedure TMainForm.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
//...
end;如果我要在DOS里面写这个事件,应该怎样写?
begin
//...
end;如果我要在DOS里面写这个事件,应该怎样写?
解决方案 »
- 如何用鼠标右键选中TTreeView控件中的节点?
- cxgrid排序问题?
- 在FORM 的Caption 中怎样实现“&“符号的输入
- 各位兄台,如何在Delphi7中整合Crystal Reports9?
- 看了一些书,发现对两个表之间的数据转移都说得不是很清楚,特求教
- 我是新手,软件的注册算法这一过程如何写?
- 触发器的解密问题
- 无聊,散分。
- 怎么利用代码访问双击sqlconnection之后弹出来的对话框里面的参数?
- delphi的一个小问是
- 高手:Delphi如何获取MS Analysis Service2000的元数据和mdx查询结果?急!急!
- 如何自定义自己的光标图标啊,请大侠们多多帮忙,谢了◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
begin
//...
end;我在DOS下怎么写这个事件呀?
TApplication=class
private
ServerSocket1:TServerSocket;
protected
procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
public
procedure Entry;
end;
implementation
TApplication
procedure TApplication.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
end;
procedure TApplication.Entry;
begin
ServerSocket1:=TServerSocket.Create(nil);
ServerSocket1.OnClientRead:=Serversocket1Clientread;
//这里写你的控制台程序入口代码,
//....
end;
begin
with TApplication.Create do
begin
try
Entry
finally
Free;
end;
end;
end;
Windows,
SysUtils,
ExtCtrls,
Classes,
Winsock,
ScktComp,
Forms;var
timer1:TTimer; Method:TMethod;var
TServerSocket1: TServerSocket;procedure Timer1Timer(Sender: TObject);
begin
MessageBox(0, 'aa', 'bb', 0);
end;procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
//
end;begin
TServerSocket1 := TServerSocket.Create(nil);
Method.Data := nil;
Method.Code := @ServerSocket1ClientRead;
TServerSocket1.OnClientRead := TNotifyEvent(Method);//不行通过 timer1:=TTimer.Create(nil);
timer1.Interval:=3000;
Method.Data := nil;
Method.Code := @Timer1Timer;
timer1.OnTimer:= TNotifyEvent(Method);
while True do Application.ProcessMessages;
end.
我按照你的改写的。。可是里面有一行不能过!你看看。。
OnClientRead与TNotifyEvent不兼容的
我的例子就不会活学活用??
强制类型转换为OnClientRead即可P.S.ClientSocket这类组件都是淘汰的,现在都用Indy的http://lysoft.7u7.net
ClientSocket是什么组件?TCP组件,所以用IdTCPClient代替。当然使用方法完全不一样的,Indy内建Thread支持的还是自己去研究吧~http://lysoft.7u7.net
TServerSocket.Create(nil);
先分配TServerSocket大小的内存并调用Create(nil)
而
ServerSocket1.Create(nil);
只调用Create
SysUtils, Winsock, ScktComp, Dialogs;type
TApplication = class
private
ServerSocket1: TServerSocket;
protected
procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
public
procedure Entry;
end; MyCallBack = function(S: string): string; //定义一个回调函数procedure TApplication.Entry;
begin
ServerSocket1 := TServerSocket.Create(nil);
ServerSocket1.Port := 728;
ServerSocket1.Active := True;
ServerSocket1.OnClientRead := ServerSocket1ClientRead;
end;procedure TApplication.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
S: string;
begin
S := Socket.ReceiveText;
if S = 'a' then
Writeln('Ok');
//Socket.SendText('接收信息成功!');
end;begin
with TApplication.Create do
begin
try
Entry
finally
//Free;
end;
end;
Writeln('...');
Readln;
end.