Id Telnet 如何利用Edit傳送資料給Server端 |
答題得分者是:couchpotato
|
jarkin
一般會員 發表:17 回覆:7 積分:4 註冊:2006-08-15 發送簡訊給我 |
我有找到BCB的Indy 的Id telnet範例來測試,我發現程式裡面只能利用Memo的物件裡Send資料(有一點像Windows的命令提示字元一樣),
不過我想利用另外一個Edit和Button來傳送資料,意思就是我Key資料到Edit,然後我只要按下Button就可以Send資料到Telnet裡,但是不會做, 上來請教大大們,以前我是用VB來設計,但是遇到瓶頸所以想用BCB來試試看,請大大們不吝指教!! 以下是範例程式碼: [code cpp] //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Client.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TTelnetForm *TelnetForm; //--------------------------------------------------------------------------- __fastcall TTelnetForm::TTelnetForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::UpDown1Click(TObject *Sender, TUDBtnType Button) { int PortNumber = StrToInt(spnedtPort->Text); if(Button == btNext){ PortNumber ; } if(Button == btPrev){ PortNumber--; } spnedtPort->Text = IntToStr(PortNumber); } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::FormCreate(TObject *Sender) { spnedtPort->Text = "23"; } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::btnConnectClick(TObject *Sender) { IdTelnetDemo->Host = edtServer->Text; IdTelnetDemo->Port = StrToInt(spnedtPort->Text); IdTelnetDemo->Connect(); } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::btnDisconnectClick(TObject *Sender) { IdTelnetDemo->Disconnect(); } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::Memo1KeyPress(TObject *Sender, char &Key) { if(IdTelnetDemo->Connected()) { IdTelnetDemo->SendCh(Key); Key = 0; } } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::IdTelnetDemoDataAvailable(AnsiString Buffer) { int Start, Stop; if(Memo1->Lines->Count == 0) Memo1->Lines->Add(""); Start = 1; Stop = Buffer.Pos(IntToStr('\n')); //the character count to a CR in the buffer if(Stop == 0) Stop = Buffer.Length() 1; while(Start <= Buffer.Length()){ Memo1->Lines->Strings[Memo1->Lines->Count -1] = Memo1->Lines->Strings[Memo1->Lines->Count -1] Buffer.SubString(Start,Stop-Start); if(Buffer.SubString(Stop,1)=='\n') { Memo1->Lines->Add(""); SendMessage(Memo1->Handle,WM_KEYDOWN, VK_UP,1); } Start = Stop 1; if(Start > Buffer.Length()){ break; } if(Buffer.SubString(Start,1)=='\n'){ Start ; } Stop = Start; while((Buffer.SubString(Stop, 1)!= '\n')&&(Stop <= Buffer.Length())){ Stop ; } } } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::IdTelnetDemoConnected(TObject *Sender) { sbrStatus->SimpleText = "Connected"; } //--------------------------------------------------------------------------- void __fastcall TTelnetForm::IdTelnetDemoConnect() { sbrStatus->SimpleText = "Connect"; } //--------------------------------------------- [/code] |
couchpotato
初階會員 發表:1 回覆:16 積分:33 註冊:2008-05-09 發送簡訊給我 |
你好: 請自行在Form加入Button 和 Edit [code cpp] void __fastcall TTelnetForm::Button1Click(TObject *Sender) { String url = Edit1->Text; if(IdTelnetDemo->Connected()){ for(int i=1;i<=url.Length();i ) { IdTelnetDemo->SendCh(url[i]); } //IdTelnetDemo->SendCh(13); 若要加上Enter功能 把這行mark取消 } } [/code]
------
我是機器人,我不接受簡訊.
編輯記錄
couchpotato 重新編輯於 2008-05-12 18:14:54, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |