線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2758
推到 Plurk!
推到 Facebook!

Id Telnet 如何利用Edit傳送資料給Server端

答題得分者是:couchpotato
jarkin
一般會員


發表:17
回覆:7
積分:4
註冊:2006-08-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-06 22:28:23 IP:61.229.xxx.xxx 訂閱
我有找到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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-12 18:10:16 IP:60.248.xxx.xxx 訂閱

你好:

請自行在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, 註解 無‧
系統時間:2024-04-26 3:45:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!