标题菜鸟捉虫(45)
栏目软件世界
发布2001年45期
上期正确答案
我们应该在“WITH imgCtrl[i] DO BEIGN”中加入Parent=Form1,如果没有指定Parent(即将该控件显示在何处)那么将无法显示出控件来。
另一个错误在“OldTop:=imgCtrl.Top + Height+2;”一句中,将它修改为OldTop:=imgCtrl[i-1].Top+Height+2;则可以正常显示出第三幅图片。
获奖名单
四 川 熊 理 重 庆 张 鹏
北 京 刘 霏 浙 江 胡亚平
湖 南 李泽志
以上幸运读者将获得电脑报最新出品的《电脑报系列配套光盘》杂志一套。
本期题目
有时,我们需要将一些简单的信息保存在文件中,以便日后需要时调用。使用INI文件可以很方便地读写文件中的内容。除此之外,我们还可以将需要保存及读取的内容使用一个结构保存下来并写入文本中,这样读取数据也非常方便。先新建一个工程,加入四个Label控件及四个Edit控件,Label的Caption值分别为姓名、年龄、性别、总分。再加入两个Button控件,分别为保存及读取。下面则是程序代码:
//定义FileInfo结构
type
TFileInfo=record
szName:String;
szAge:Integer;
szSex:String;
szTotal:Integer;
end;
procedure TForm1.Button1Click(Sender:TObject);
var
FileInfo:TFileInfo;
F:TFileStream;
begin
WITH FileInfo DO BEGIN
szName:=Edit1.Text;
szAge:=StrToInt(Edit2.Text);
szSex:=Edit3.Text;
szTotal:=StrToInt(Edit4.Text);
END;
F:=TFileStream.Create('C:\Test.txt',fmOpenReadWrite or fmCreate);
F.WriteBuffer(FileInfo,sizeof(FileInfo));
F.Free;
end;
procedure TForm1.Button2Click(Sender:TObject);
var
FileInfo:TFileInfo;
F:TFileStream
begin
F:=TFileStream.Create('C:\Test.txt',fmOpenRead);
F.ReadBuffer(FileInfo,sizeof(FileInfo));
F.Free;
ShowMessage('姓名:' + FileInfo.szName);
end;