如果控件做不好,无法观看世界杯!求大虾相助~!~(100分)

  • 主题发起人 主题发起人 summer_core99
  • 开始时间 开始时间
S

summer_core99

Unregistered / Unconfirmed
GUEST, unregistred user!
  公司要扩展dxDBButtonEdit控件(就是后面有带三个小圆点小按钮的数据文本框),任务:当点击小按钮时,弹出一数据选择对话框(可以选择相应的比如颜色、单位、客户之类的选择对话框),把选中的数据填入dxDBButtonEdit中,谁有类似的源码,不甚感激!!!

问题:我重新定义了OnButtonClick,可点击小按钮时,都弹不出对话框,要怎么写呢?
 
贴出来,大家给你改。。。
 
好的,谢谢大家~如果改好了,晚上就可以通宵看世界杯了!~~

unit scDBButtonEdit;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, dxCntner, dxEditor,
dxExEdtr, dxEdLib, dxDBELib, ADODB, DB;

type
TscDBButtonEdit = class(TdxDBButtonEdit)
private
{ Private declarations }
FSQL: String;
FTitleCaption: string;
FOnButtonClick: TNotifyEvent;
procedure btnClick(Sender: TObject);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
//property OnButtonClick: TNotifyEvent read FOnButtonClick write FOnButtonClick;
property SQL: String read FSQL write FSQL;
property TitleCaption: string read FTitleCaption write FTitleCaption;
end;

procedure Register;

implementation

uses scDBGridSelectItemDlg;

procedure Register;
begin
RegisterComponents('SCVCL', [TscDBButtonEdit]);
end;

{ TscDBButtonEdit }

procedure TscDBButtonEdit.BtnClick(Sender: TObject);
var
DBGridSelectItemDlg: TscDBGridSelectItemDlg;
begin
if Assigned(FOnButtonClick) then
FOnButtonClick(Self);
if (DataSource = nil) or (DataField = '') then
raise Exception.Create('未设置数据连接属性!');
if not(DataSource.DataSet.State in [dsEdit, dsInsert]) then
Exit;
try
DBGridSelectItemDlg := TscDBGridSelectItemDlg.Create(Self);
with DBGridSelectItemDlg do
begin
qry.Connection := TADOQuery(DataSource.DataSet).Connection;
FormSQL := FSQL;
FormTitleCaption := FTitleCaption;
end;
if DBGridSelectItemDlg.ShowModal = mrOK then
DataSource.DataSet.FieldByName(DataField).AsString := DBGridSelectItemDlg.qry.Fields[0].AsString;
finally
DBGridSelectItemDlg.Free;
end;
end;

constructor TscDBButtonEdit.Create(AOwner: TComponent);
begin
inherited;
// OnButtonClick := btnClick;
end;

end.
 
今天买电视,晚上看WORLD CUP.
 
第一、
你先看看别的三方控件的写法,再去写控件!
第二、
好象不用写控件就可以完成你的需求;
第三、
如果你要做成控件并且从dxDBButtonEdit继承,那么你写的这们控件安装时还先要装DEV的控件!
 
你今晚之前就要?
不会这么急吧?
不过时间应该够!
你点的那三个点的按钮时,要从数据源取数据?
 
我看了很多源码了,但总是完成不了OnButtonClick与自定义的btnClick相结合,点击小按钮一点反应也没有
 
TO:清新空气
是的,点击那三个圆点的小按钮,要从数据源取数据。其实做软件时,这是很常用的,就是一个选择类别的对话框,不过,这倒是把我给拦住了
 
FOnButtonClick: TNotifyEvent;???
OnButtonClick事件是不是要定义成TNotifyEvent这个类呢?
 
那你就是要写一个数据控件?
 
是的,就是一个选择对话框,这个对话框有DBGrid,双击DBGrid,就会选取相应的记录ID,填充到dxDBButtonEdit中
 
换个思路试试,重载消息。
WndProc;
begin
if Message.Msg = WM_LBUTTONDOWN then
begin
//调用单击过程
exit;
end;
inherited WndProc(Message);
end;
 
不知道哪位代码大师有这个对话框的源码,贴出来学习一下
 
我有倒是有~!不过要写完全还是需要点时间的!
这样吧!你是不是一定要用dxDBButtonEdit来继承?
 
是的,用的都是Dev控件,每个控件都从Dev继承,能帮我写个这样的选择对话框控件吗?
我的QQ:43170626
 
我试试;控件写过很多!不过只不喜欢写数据控件;
写好会发给你的!
 
很急,没有理这问题???望各DFW们相助
 
我加了你的QQ快回应!我们QQ上谈,别忘了给分哟~!
 
在搞什么呀?半天不回话;还很急呢!6点我下班了就不管你了!
快说清你的需求;
一、下拉框中想做成什么样的界面;
二、下拉框中的数据源,是否需要做成DataSouce属性来连接数据源?
三、下拉框中的界面里,你想用什么控件?做成什么样的点击打勾?
 
今天晚上世界杯开始了[:D]。你做完没有?
 

Similar threads

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