TClientSocketのOnReadメソッド


kkk  2003-04-10 04:00:24  No: 3300  IP: [192.*.*.*]

C++Builder5ですが、アドバイスお願いします。

チャットのプログラムで受信するときにTClientSocketの
OnReadイベントハンドラに、Memo1->Lines->Add(Socket->
ReceiveText()とかけば、受信できますが、

この1行を書かなくていいようにコンポーネントとしてま
とめようとしています。

以下にチャットクライアントライブラリのメソッド部分を
のせましたので是非、良きアドバイスお願いいたします。

OnReadを拡張しようと考えたのですが・・・。

ChatClientという新しいコンポーネントを考えました。

void __fastcall TChatClient::Prepare(void)
{
//TODO: この下にコードを追加してください
if(Active){
Active=false;

}else{
if(User=="")
ShowMessage("あなたの名前を入力してください。");
else if(Host=="")
ShowMessage("接続先のホスト名を指定してください。");
else if(Port==0)
ShowMessage("接続先のポート番号を指定してください。");

else
Active=true;
}

}

void __fastcall TChatClient::TextSend()
{
//TODO: この下にコードを追加してください
if(Active)
Socket->SendText(User + ':' + SText);
else
ShowMessage("まず、接続してください。");

}
//ここから下がぜんぜんわかりません。

void __fastcall TChatClient::OnRead(TObject * Sender, TCustomWinSocket * Socket)
{

TClientSocket::OnRead( Sender, Socket);
RText=(Socket->ReceiveText());
}

編集    削除
にしの  2003-04-11 06:59:43  No: 3301  IP: [192.*.*.*]

OnReadは、Eventメソッドから呼ばれているようなので、これをoverrideしてOnReadを呼ぶ前にReceiveTextを呼べばできそうです。
B++Builderは今は持っていないので未確認です。

編集    削除