|
通用Delphi数据库输入控件DBPanel的实现(2) ---- 将以上两个方法赋值给动态生成的Editors,从而实现对箭头键的响应。 ---- 不同的表字段数不同,有可能出现显示不下的情况,这就需要有滚动的功能。所以,在控件中插入了一个TscrollBox控件。最后一个需要注意的是动态控件的撤消及内存的释放。控件数组的撤消及内存的释放是有顺序的--与创建完全相反的顺序。否则会出错。
----控件的使用
---- 先将DBPanel控件放在窗体上,然后设置数据源属性、数据输入表格的列数等属性。在程序中,打开数据源后,调用创建数据编辑控件的方法即可。即:
Query1.Open;- >打开数据源 DBPanel1.CreateEditors; - >创建各字段的编辑控件 DBPanel1.AddHits(0,['1111','11222','eeee']); - >为某字段设置提示信息 DBPanel1.AddHits(1,['1111','11222','eeee']); - >为某字段设置提示信息 该控件及示例程序在Win98+Delphi 5.0环境下调试通过。
---- 附件:TDBPanel的源代码
unit DBPanel; interface uses Windows, Messages, SysUtils, Classes, GraphiCS, Controls, Forms, Dialogs, ExtCtrls, dbctrls, stdctrls, db; type TDBPanel = class(TPanel) private { Private declarations } FLeft: Integer; FTop: Integer; maxTextLen: Integer; maxLabelLen: Integer; FScrollBox: TScrollBox; {滚动控件} FLineHeight: Integer; FClick: TNotifyEvent; Editors: array of TDBComboBox; - >具体进行编辑所用的数据控件数组,动态生成 Labels: array of TLabel; - >各字段的标题,动态生成 OkButton: TButton; - >最后增加的确定按钮,用于实现提交动作。 { 数据源} FDataSource: TDataSource; FColumns: Integer; - >输入表格的列数 protected { Protected declarations }
|