一个菜鸟:我做了一人通用的查询窗体,我想封装成一个组件,但是我不知道怎么把已写好的窗体加入 ( 积分: 100 )

  • 主题发起人 主题发起人 wzjlg
  • 开始时间 开始时间
W

wzjlg

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(][:(][:(]????? 在窗体中所有功能都实现了,但是用起来还是没有组件方便
 
[:(][:(][:(]????? 在窗体中所有功能都实现了,但是用起来还是没有组件方便
 
用Form估计不太行了,有太多的问题。。
Frame估计就可以形成你需要的功能。。。不过Delphi的Frame好像Bug还不少。
不行就用CustomPanel/Panel了,不过缺点就是所有的东西都得自己去Create再放在上面
 
这位师兄,我看了一下别人写出一个查询组件,部分代码如下
TDBCustomDialog = class(TComponent)
protected
public
function Execute: Boolean; virtual; abstract;

function GetPrimaryDataSet: TDataSet; virtual; abstract;
end;

TDBCustomDialogClass = class of TDBCustomDialog;

TDBLocateDlg = class(TForm)
SearchTypeGroup: TGroupBox;
CaseSensitiveCheckBox: TCheckBox;
ExactMatchBtn: TRadioButton;
PartialMatchStartBtn: TRadioButton;
PartialMatchAnyBtn: TRadioButton;

如按F12 可发调出窗体
 
《Delphi 6 開發人員指南》第11章就有這樣的例子。
下面是一個密碼窗體控件。
主要是Rigister過程注冊一下就行了。

unit PwDlg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
//第一步,建立一個Form,而不是Application
TPasswordDlg = class(TForm)
OKbtn: TButton;
Cancelbtn: TButton;
Label1: TLabel;
Password: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
//以下這個TddgPasswordDialog不是新建上面TPasswordDlg窗體時產生的,
//而是手動加入的。
//第二步,建立一個類,包含上面的Form,并聲明此Form類型的變量
TddgPasswordDialog=class(TComponent)
private
PasswordDlg:TPasswordDlg; //聲明一個TPasswordDlg類型私有變量
FPassword:String;
public
function Execute:Boolean; //公開執行此Form的方法
published
//雜七雜八的屬性,方法,事件
property Password:String read FPassword write FPassword;
end;

//第三步,注冊為控件。
procedure Register;
implementation
{$R *.dfm}

procedure Register;
begin
RegisterComponents('ddg', [TddgPasswordDialog]);
end;

{ TddgPasswordDialog }
function TddgPasswordDialog.Execute: Boolean;
begin
PasswordDlg:=TPasswordDlg.Create(Application);
begin
try
Result:=False;
if PasswordDlg.ShowModal=mrOK then
Result:=PasswordDlg.Password.Text=FPassword;
finally
PasswordDlg.Free;
end;
end;
end;

end.

安裝控件不用說了吧,
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部