菜鸟捉虫(3)

软件世界

上期正确答案:

在上期代码中,导致服务器端与客户端不能通信的原因有二:1.端口设置有错。服务端的LocalPort属性应该与客户端的RemotePort一致,服务端的RemotePort属性应该与客户端的LocalPort一致;2.将第1个错误修正后仍然不能进行连接,因为客户端的RemotePort及LocalPort在OnShow事件中形同虚设,因为在OnCreate事件中加入了Application.ShowMainForm:=False这句代码,即不显示窗体,那么OnShow事件将不会被触发,解决的办法就是将OnShow事件中的代码移到OnCreate事件中即可。

获奖名单:

北京 谢勇
江西 康爱群
河北 张拥军
天津 苏强
新疆 熊晓强
以上获奖读者将获得电脑报最新出品的电脑报系列配套光盘杂志一套。

本期题目:

现在有一个文本文件,里面存储了一些用户名,现需要将这些用户名使用TreeView显示出来。具体要求是根结点为“用户名”,在其子结点上则显示用户名。下面则是实现该效果的源代码,但运行程序后并不合要求,请找出其中的错误。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure FillTreeView;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FillTreeView;
var
Node: TTreeNode;
txtFile: TextFile;
tmpStr: String;
begin
Node:=TreeView1.Items.AddChild(nil,'用户名');
AssignFile(txtFile,'c:\user.db');
ReSet(txtFile);
while not eof(txtFile) do
begin
Readln(txtFile,tmpStr);
if tmpStr <> '' then
Node:=TreeView1.Items.AddChild(Node,tmpStr);
end;
CloseFile(txtFile);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FillTreeView;
end;