更多感受-Hello Internet
预备课程:如何将C++ Builder6的Indy网络控件升级到 9.0?
看上去很繁琐,但没办法,您必须过这一关。请学习该教程,将C++ Builder 6 的 Indy控件升级指定版本。
本节课您将通过编程,通过Internet,听到来自d2school网站的问候。其中所要用到的控件,正是升级之后的Indy控件。并且,以后本课程所用的网络控件,除非特别提及,否则都将是指升级了之后Indy控件。
第2小节:Hello Internet!
2.1 界面设计
首先,请复习前1小节有关Hello Windows(版本三)内容。
重复其界面设计(不包括代码)。同样为了区别起见,我们将用于显示“Hello……”的Label字体颜色,设置为蓝色;另外,本例中,从www.d2school.com返回的问候比较长,所以建议在将字体的大小改小一些,我用的是二号字。
接下来,在Form1上添加一个按钮/Button控件,该控件位于:

(Button 控件)
将Button1的Caption属性,设置为“第2学堂”;其字体设置为“宋体、五号字”,字符集为“CHINESE_GB2321”。
最后,到Indy控件出场的时候了。我们需一个IdHTTP的控件,该控件负责在我们按下按钮时,访问因特网/Internet上的“第2学堂”上的某个网页,该网页返回对您的问候。

(Indy Clients 页的IdHTTP控件) 最终界面设计结果如下:

(Hello Internet 界面设计结果)
选中Form1上的那个画着地球的IdHTTP1控件,在“对象检视器”内,设置其Host属性值为“www.d2school.com”(不包含引号),以下是设置结果截图:
 (设置
IDHTTP1的Host属性) 2.2 代码设计
双击“第二学堂”按钮,代码编辑窗口将出现该按钮用于响应OnClick事件的函数:Button1Click。我们需要在其函数体仙,输入一行响应代码,结果为:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
this->Label1->Caption = this->IdHTTP1->Get("/hello.php?name=" + this->Edit1->Text);
}
|
|
平常我们设置某个控件的事件,需要在“对象检视器”或俗称“属性设置器”里,通过Event页来设置。不过,多数控件都有一个“默认”事件,可以通过在设计期在表单上,双击该控件就直接切换到代码编辑窗口中,该事件的函数。
这个“默认”的事件,往往就是该类型控件最常用的事件,比如按钮,其默认事件,当然就是“OnClick”,也就是“点击/按下”的事件。 |
2.3 设置工程包含路径
保存工程,但先不要编译,让我们检查一下,您是否已按照预备课程中所说的,这工程添加了和Indy有关的路径。
由于在编译、链接工程成为可执行文件时,需要用到Indy库包含的文件,而在预备课程里,我们将新版Indy安装在非标准的路径下,因此,此时我们需要“告知”CB,Indy被安装在哪个路径下。
选择主菜单“Project->Options”(或者:Ctrl + Shift +
F11)。出现的工程设置对话框中,切换到“Directories/Conditionals”页面:

(工程设置-路径/条件页面)
点击“Include path”所在行右边的带“...”的按钮,出现对话框中,请检查所列出的路径,是否存在:
“$(BCB)\Source\indy\c6”这一行?如果不存在,通过以下图示步骤添加:

(添加Indy路径)
点击“Library path”所在行右边的带“...”的按钮,将上述工作重复一次。
再次保存工程。
2.4 编译,运行
按F9,编译……链接……(出现问题?检查代码或前述的路径设置)。

(Hello Internet 运行中……)
在编辑框中输入您的姓名,比如“南郁”,然后……等等!请确保您的电脑已经联上因特网,并且可以访问www.d2school.com,也就是我们的网站。
点击“第2学堂”按钮……又是一个激动人心的时刻……等等!快的时候不用1秒,慢的时候,可能是3~5秒。结果就会出现了。
|
如果,您的电脑装有防火墙软件,那么或许在结果出现之前,防火墙软件可能会以某种方式,询问您是否允许某某程序访问网络,请允许之。 |
这是我机器上的运行结果:

(来自第2学堂的问候!)
相比以前的简短Hello,这次问候可谓长矣!看,连窗口都出现滚动条了!想知道那些没有显示出来的内容是什么吗?自已动手完成吧!
作业:
- 复习2.3节。
|