荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (佐治·希尔【多情网虫无情网】), 信区: Program
标  题: 如何在Delphi4 BDE中配置Access数据库
发信站: BBS 荔园晨风站 (Sun Mar 12 01:55:39 2000), 转信

资料整理·中国程序员网站


如何在Delphi4 BDE中配置Access数据库

(福建 许晓明)



  在使用Netscape的navigator时不知你有没有注意到:在它的状态栏有一组按钮,
这使我们能很方便地打开另一个窗体,更有效地利用时间(要知道网上冲浪时间就是金
钱啊!)。
  接下来我要讲的是如何在我们的程序中加入此功能,我们可以用DELPHI很轻易地实
现,在DELPHI中我们可以指定某个Twincontrol类(如Ttoolbar)的父级为另一个
Twincontrol(这里是Tstatusbar),然后通过动态创建Ttoolbar就可以在Tstarbar上创
建TToolbar了,并且为工具条(Toolbar)添加按钮及其事件,通过调用API中的winexec
实现对Window的应用程序的调用。下面给出了详细的代码和注释给大家分享。
  unit superbar;
  interface
  uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,ComCtrls;
  type
   TForm1 = class(TForm)
   StatusBar1: TStatusBar;{为窗体添加一个状态栏}
   procedure FormCreate(Sender: TObject);
   private
   {声明以下过程}
   procedure createsuperbar(sender:Tobject;Imagelist:TImagelist);
   {创建工具条}
   procedure createbutton(toolbar:TToolbar;Const ButtonCaptions: array of
String);
   {创建工具条的按钮}
   procedure superbuttonclick(sender:Tobject);
   {为工具条按钮添加事件}
   public
   end;
  var
   Form1: TForm1;
   toolbar:TToolbar;
  implementation
  uses shellapi,commctrl;{注意要加入此句,否则程序运行无法通过}
  {$R *.DFM}
  procedure TForm1.createsuperbar(sender:Tobject;Imagelist:Timagelist);
  begin
   toolbar:=TToolbar.Create(self);{动态创建一个工具条}
   with toolbar do
   begin
   parent:=statusbar1;{定义toolbar的父类为状态栏,这样就可以创建出状态栏
的工具条了}
   top:=1;left:=1;height:=18;
   buttonheight:=16;buttonwidth:=16;{定出toolbar和toolbutton的宽度长度};
   flat:=true;autosize:=true; {设置toolbutton为浮动形式}
   images:=imagelist;{设置toolbutton的图标}
   {使工具条可以脱离状态栏.注意:如果你用的是DELPHI3.0需删除此两句,即可用}
   dragkind:=dkdock;
   dragmode:=dmautomatic;
   end;
  end;
  procedure TForm1.createbutton(Toolbar:TToolbar;Const ButtonCapti
Parent := ToolBar;
   Caption := ButtonCaptions[I];
   onclick:=superbuttonclick;{为toolbutton增加鼠标click事件}
   if (ButtonCaptions[I]=‘|’) then{判断是不是分隔符}
   begin
   Style := tbsSeparator;
   m:=m+1;
   end
   else
   begin
   Style := tbsButton;
   imageindex:=i-m;
   end;
   end;
   end;
  end;
  {这里是响应鼠标事件,实现应用程序的打开}
  procedure TForm1.superbuttonclick(sender:Tobject);
  begin
  winexec(pchar((sender as TToolbutton).caption),SW_ShowNormal);
{打开一个Windows的应用程序}
  end;
  procedure TForm1.FormCreate(Sender: TObject);
  const
   ExeList:array[0..2] of String=(
   ‘winfile.exe’,
   ‘|’,
   ‘notepad.exe’);{可以在这里加上其它应用程序的全称,也可以不要分隔符}
  var
   imagelist:Timagelist;
   i:integer;
  begin
   imagelist:=Timagelist.Create(self);
   try{加入安全代码,也可不加}
   for i:=0 to high(exelist) do
   if exelist[i] <> ‘|’ then
   begin
  ImageList_AddIcon(ImageList.Handle,ExtractIcon(Handle,PChar(ExeList[i])
,0));
{为imagelist添加图标}
   end;
   createsuperbar(self,imagelist);
   createbutton(toolbar,exelist);
   finally
   end;
  end;
  end.
  以上程序已在Pentium-MMX166 32M Windows 98 DELPHI 4.0 通过,小弟反复测
试没有问题,才斗胆拿出来与大家分享,如有问题望广大Delphi迷能给小弟多提意见,
在下将翘首期待你的来信。
--
        那你可不可以教我,
        有什么办法可以不去喜欢一个人呢?

                -- Bye 赤明莉香 --
 我是来自大富翁的小美!^_^

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店