标题菜鸟捉虫(34)
栏目软件世界
发布2001年34期
上期答案:
运行程序时会报ListAllFiles自定义函数中ListBox1.Clear语句出错。将ListBox1.Clear改为Form1.ListBox1.Clear可解决。依次将后面的错误用同样的方法修改即可。此时,虽然在运行时不会报错,但是会出现死循环现象,只要将FindNextSearchRec改成ReValue=FindNext(SearchRec)即可恢复正常。
获奖名单:
浙江 雷震中 安徽 王海滨 湖南 江 斌
云南 朱 华 湖北 王 正
以上幸运读者将获得电脑报最新出品的《电脑报系列配套光盘》杂志一套。
本期题目:
本期我们来看看一个制作并调用包含窗体的DLL文件的例子。我们将关于对话框制作为一个DLL文件,然后再在程序中调用该DLL并显示出关于对话框。新建一个DLL工程,再新建一个窗体,用于制作关于对话框。源代码如下,但该代码中含有一些错误,请将这些错误找出来。
DLL文件中的源代码:
library AboutDLL;
uses
SysUtils,Classes,Windows,Forms;
($R *.RES)
function ShowABoutForm;boolean;
var
AboutForm:TForm1;
begin
AboutForm:=TForm1.Create(Application);
AboutForm.Show;
Result:=True;
AboutForm.Free;
end;
begin
end.
主程序中的调引DLL的源代码:
……
implementation
function ShowAboutForm:boolean;external 'aboutdll.dll'; //静态调用DLL文件
($R *.DFM)
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowAboutForm
end;
……