想法是:在许多相同的DBcbx_sex控件(dbcombobox)中,如果按下了回车键,
就把数据库中找到的内容赋值到这个控件的text属性。
难点:很多控件都要实现这种功能,但是不想用复制代码的方式,(太多了)
谢谢,
procedure TfrmBasic.DBcbx_sexKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = integer(#13) then
begin
DBcbx_sex.Text := DM.ADODataSet_Help.FieldValues['tiaomu'];
SelectNext(ActiveControl, True, True);
end;
end;
就把数据库中找到的内容赋值到这个控件的text属性。
难点:很多控件都要实现这种功能,但是不想用复制代码的方式,(太多了)
谢谢,
procedure TfrmBasic.DBcbx_sexKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = integer(#13) then
begin
DBcbx_sex.Text := DM.ADODataSet_Help.FieldValues['tiaomu'];
SelectNext(ActiveControl, True, True);
end;
end;
unit DBComboBoxEx;interfaceuses
SysUtils, Classes, Controls, StdCtrls, DBCtrls, Forms;type
TDBComboBoxEx = class(TDBComboBox)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
published
{ Published declarations }
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [TDBComboBoxEx]);
end;{ TDBComboBoxEx }procedure TDBComboBoxEx.KeyUp(var Key: Word; Shift: TShiftState);
begin
inherited;
if key = integer(#13) then
begin
Application.MessageBox('', '');
// 如何传数据你要考虑一个
end;
end;end.
要求是DBComboBoxEx1按下的时候赋值给DBComboBoxEx1
要求是DBComboBoxEx2按下的时候赋值给DBComboBoxEx2,
多个DBComboBox控件共用一个处理方法,把Sender对象转换成相应的控件。dTDBComboBox(Sender).Text := DM.ADODataSet_Help.FieldValues[dTDBComboBox(Sender).DataField];
procedure TfrmBasic.OnComboboxKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = integer(#13) then
begin
TDBComboBox(Sender).Text := DM.ADODataSet_Help.FieldValues[dTDBComboBox(Sender).DataField];
SelectNext(ActiveControl, True, True);
end;
end;再FormCreate中循环把TDBComboBox的OnKeyUp事件都赋成OnComboboxKeyUp就可以了
AdbCombobox.OnkeyUp=OnComboboxKeyUp
以后用的时候代码会自动生成