Chinaunix首页 | 论坛 | 博客
  • 博客访问: 522014
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: 数据库开发技术

2010-07-29 11:12:18

   这几天在一直在看BCB自带的源程序演示实例,在看到DBTasks文件夹下的NavSDI演示例程后,认为要好好的动一下手,认真的学习一下。所以就按NavSDI演示例程的结构,自已动手重新构建了一个新的SDI界面的数据库应用程序。并对NavSDI例程做了一个分析说明。以下是根具NavSDI例程重新构建一个新的应用程序全过程。

   首先打开BCB开发工具,单击菜单栏中的File->New->Other按钮,弹出New Items对话框。在New Items对话框选择[Projects]表单页,在[Projects]页面中选中SDI Application图标,然后单击[OK]按钮,在弹出的Select Directory对话框中选择你建立该项目的目录,然后单击[OK]按钮。BCB就帮我们创建了一个默认的SDI应用程序模板工程。载图如下:
BCB自动创建新工程后,我们需要将新工程中的主窗体SDIAppForm中不需要的一些控件给删除掉。设置主窗体SDIAppForm的BorderStyle属性为bsToolWindow,FormStyle属性为fsStayOnTop。

   创建并设置好主窗体SDIAppForm后,我们需要在项目中创建一个数据模块来集中管理BCB提供的数据库应用开发控件。开始创建数据模块,点击BCB开发工具菜单栏中的File->New->Data Module按钮,创建一个名称为DataModule1的数据模块,设置DataModule1的OldCreateOrder属性为true,然后在DataModule1窗口中添加二个DataSource组件(该组件在Data Access组件面板),分别命名为DataSource1和DataSource2。再向DataModule1窗口中添加二个TTable组件(该组件在BDE组件面板),分别命名为Table1和Table2。然后分别为DataSource1,2,Table1,2进行一些属性设置。设置属性如下表:
DataSource1->DataSet := Table1;
DataSource2->DataSet := Table2;

Table1->DatabaseName := BCDEMOS; //BCDEMOS是BCB自带的数据库来的。只要安装了BDE工具就有
Table1->TableName    := customer.db;//customer.db是BCDEMOS数据库中的一张表来的。
Table1->IndexName    := ByCompany;//设置数据表的索引字段为ByCompany。
Table1->Active       := true; //激活Table1组件  

Table2->DatabaseName := BCDEMOS; //BCDEMOS是BCB自带的数据库来的。只要安装了BDE工具就有
Table2->TableName    := orders.db;//orders.db是BCDEMOS数据库中的一张表来的。
Table2->IndexName    := CustNo;//设置数据表的索引字段为CustNo。
Table2->MasterSource := DataSource1; //设置主表的数据源以便对两张表进行关连。
Table2->MasterFields := CustNo; //点击MasterFields属性右边的[...]编辑按钮,弹出Field
                                //Link Designer对话框,将Available Indexes组合框中选择
                                //CustNo, 在Detail Fields列表组合框中选中CustNo,在
                                //Master Fields列表组合框中也选中CustNo,然后单击[Add]
                                //按钮,将CustNo->CustNo添加到Joined Fields列表组合框中
                                //了。完成对 customer.db表到orders.db表的关联查询。然后
                                //单击Field Link Designer对话框的[OK]按钮完成设置。
Table2->Active       := true; //激活Table2组件  

完成对数据模块中的数据组件的设置后,我们需要创建两个窗体来分别显示customer.db表和orders.db表中的数据。接下来我们就开始创建数据显示窗口了。

   点击BCB开发工具菜单栏中的File->New->Form按钮,连续创建三个窗体,分别命名为Form2,Form3,和Form4。使用Form2来显示customer.db表中的数据,使用Form3来显示orders.db表中的数据。Form4做为一个空窗体,主要是用来演示一下SDI应用程序的特点的。哈哈。 对创建的窗体作用做了一个说明后,开始对这三个窗体的一些属性进行设置。设置属性如下表:
Form2->Visible := true;
Form3->Visible := true;
Form4->Visible := true;
对窗体属性设置完成后,就开始分别设计个个窗体内容了。

  首先我们开始设计Form2的窗体内容,向Form2中添加一个TDBGrid控件(在Data Controls组件面板中),命名为DBGrid1。然后设置DBGrid1的属性,设置如下——DBGrid1->Align :=alClient; DBGrid1->DataSource :=DataModule1->DataSource1; 就可以了。完成对Form2的窗体设计了。

   接着我们开始对Form3的窗体内容进行设计,向Form3的窗体中添加一个TPanel控件(在Standard组件面板上),命名为Panel1,设置Panel1的Align属性为alTop,设置Caption属性为空。然后在BCB开发工具的Data Controals组件面板上找到一个TDBEdit控件,将TDBEdit控件添加到Panel1控件上面,并命名为DBEdit1,设置DBEdit1的DataSource属性为DataModule1->DataSource1,设置DataField属性为Company,完成对DBEdit1的属性设置。接下来在向Form3的窗休中添加一个TDBGrid组件,将TDBGrid组件命名为DBGrid1,设置DBGrid1的DataSource属性为DataModule1->DataSource2,设置Align属性为alClient。这样就完成了对Form3的窗体设计了。

   最后我们开始对SDIAppForm主窗体进行设计,我们需要将SDIAppForm设计成整个应用程序的主菜单。双击BCB开发工具中的Object TreeView窗体中的ActionList1控件,弹出Editing SDIAppForm->ActionList1对话框,在对话框中单击New Action按钮,创建一个新的Action1在Actions:单选框中,选中Actions:单选框中的Action1,然后在Object Inspector窗口中对Action1进行属性设置,设置Action1的name属性为aForm2,设置Caption属性为&form2,设置Category属性为Windows。然后继续使用相同的方法创建aForm3,aForm4这二个Action。增加了新的Action后就开始对SDIAppForm窗体中的MainMenu1控件进行编辑,新增新的菜单按键。双击BCB开方工具中的Object TeeView中的MainMenu1控件,弹出SDIAppForm->MainMenu1菜单设计窗口,单击新主菜单项,设置新主菜单的Caption属性为&Windows,name属性设置为Windows1。然后在菜单设计窗口中,单击新创建的Widows主菜单,弹出子菜单设计按钮,选中子菜单设计按钮,设置子菜单的Caption属性为&form2,name属性为form21。继续使用上述方法连续在创建两个新子菜单,分别命名为form31,form41。Caption属性分别为&form3和&form4。创建新的菜单后,我们需要将新菜单的Action属性和ActionList控件中的Action关联起来,这时我们需要继续设置新菜单的Action属性,设置方法如下表:
form21->Action := aForm2 ;
form31->Action := aForm3 ;
form41->Action := aForm4 ;
完成SDIAppForm上的菜单设计后,我们向主窗体SDIAppForm再添加一个TDBNavigator控件(在Data Controls组件面板中),并命名为DBNavigator1,设置DBNavigator1的DataSource属性为DataModule1->DataSource1。这下就全部完成了对该工程的UI界面设计了。然后源代码部分请大家参考BCB自带的演示实例NavSDI,该实例的路径在[BCB安装根目路\Borland\CBuilder6\Examples\DBTasks\]文件夹下。 为了给有些没有装自带源码的网友提供方便。本人在这里上传该项目的源码以提供给大家方便。
     
文件:MyNavSDI.rar
大小:11KB
下载:下载

阅读(1969) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chulia200020012010-07-30 12:08:07

SDI、MDI的基本概念和实例理解 http://developer.51cto.com/art/200909/149822.htm

chulia200020012010-07-29 16:36:11

C++ Builder在运行时创建BDE别名 http://tech.ddvip.com/2006-03/11437430401107.html

chulia200020012010-07-29 16:09:05

Delphi数据浏览部件的实际运用及编程 http://verybc.com/a/zhuliubiancheng/2009/1125/10846.html