计算机二级DELPHI技巧:delphi制作dll文件

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论


  第二节 DLL 中的Delphi窗体
  一、在DLL 中放置窗的的方法
  在DLL 中,除了放置标准的函数和过程以外,也可以放置已经做好的的delphi窗体,也可以把做好的窗体供其它程序使用,方法是:
  1)首先按普通方法制作窗体,不过在interface区域,对接口函数做如下声明
  function Createform(capt:string):string;stdcall;
  2)在implementation下加入接口函数
  function Createform(capt:string):string;stdcall;
  var Form1: TForm1;
  begin
  form1:=Tform1.Create(application);
  form1.show;
  form1.caption:=capt;
  end;
  3)制作DLL 动态连接库,但要声明:
  uses
  unit1 in ’unit1.pas’;
  exports
  {写入接口标示符}
  Createform name ’Myform’;
  4)调用窗体的程序按普通方法制作,但是 在implementation下首先声明要调用的DLL函数
  const
  gdi32=’myFormdll.dll’;
  function Createform(capt:string):string;stdcall;external gdi32 name ’Myform’;
  procedure TForm3.Button1Click(Sender: TObject);
  var n,m:string;
  begin
  m:=’我的窗体’;
  Createform(m);var n,m:string;
  end;
  二、DLL 中的调用窗体时的数据传递
  在窗体调用时,可以用普通的函数方法传递数据,下面举个例子。
  1)建立窗体
  做一个改变颜色窗体,放在DLL 中,可以用普通的方法来做,但要作如下声明:
  function mycolor(col:longint):longint;stdcall;
  function Getcolor:longint;stdcall;
  其中,mycolor为构造窗体;Getcolor为传递颜色数据。
  在implementation区声明一个窗体内全局的变量
  var color1:longint;
  下面写出相应的程序
  function mycolor(col:longint):longint;stdcall;
  var Form1: TForm1;
  begin
  form1:=Tform1.Create(application);
  form1.show;
  form1.panel1.Color:=col;
  form1.edit1.Text:=inttostr(form1.panel1.Color);
  result:=color1;
  end;
  function Getcolor:longint;stdcall;
  begin
  result:=color1;
  end;
  procedure TForm1.ScrollBar1Change(Sender: TObject);
  begin
  panel2.Color:=RGB(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);
  edit2.Text:=inttostr(panel2.Color);
  color1:=panel2.Color;
  end;
  procedure TForm1.Button2Click(Sender: TObject);
  begin
  Free; //析构Form1
  end;
  2)建立动态连接库
  运行成功后,再建立动态连接库:
  library FormDLL;
  {从文件调入}
  uses
  unit1 in ’unit1.pas’;
  exports
  {写入接口标示符}
  Mycolor name ’My’,
  Getcolor name ’Get’;
  begin
  end.
  3)建立调用的程序
  首先声明要调用的DLL函数
  const
  gdi32=’formDll.dll’;
  function Mycolor(col:longint):longint;stdcall;external gdi32 name ’My’;
  function Getcolor:longint;stdcall;external gdi32 name ’Get’;
  然后写出相应的程序
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  Mycolor(color);
  end;
  procedure TForm1.Button2Click(Sender: TObject);
  begin
  color:=getcolor;
  end;
  我们可以看到,在改变颜色的窗体中做了颜色变化后,当前窗体的颜色将发生变化。
  handle

  特别推荐:

  2009年9月全国计算机等级考试时间及科目预告

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答