TClientSocketのOnReadメソッド


kkk  2003-04-10 04:00:24  No: 3300

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加