Hi!
was du willst ist das On_Select ereignis der normalen Combobox oder ?
Ich hab mal ein wenig rumprobiert, da man ja die normalen "WM_Irgendwas"-Messages abfangen kann dachte ich mir es wird auch mit "On_select" so gehen. Das Problem ist aber das es nicht mit der "WindowProc"-Procedure behandelbar ist sondern vorher (in TCustomCombo) mit der "CNCommand" Funktion abgefangen wird. Die Event-Code-Konstante ist dann "CBN_SELCHANGE". Vielleicht reicht dir aber auch eine der vielen anderen normalen WM-Ereignisse aus. Ich geb dir mal den Code mit dem du herausfinden kannst welche Ereignisse da so auftreten.
Du brauchst eine TDBCombobox ein TButton und ein TMemo. Im Memo werden dann die Ereigniscodes angezeigt...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls;
type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; DBComboBox1: TDBComboBox; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private FDBCombobox1OldWndProc: TWndMethod; procedure DBCombobox1NewWndProc(var Msg: TMessage); public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin FDBCombobox1OldWndProc := DBCombobox1.WindowProc; DBCombobox1.WindowProc := DBCombobox1NewWndProc; end;
procedure TForm1.DBCombobox1NewWndProc(var Msg: TMessage); begin Memo1.Lines.add(Inttostr(MSG.Msg)); FDBCombobox1OldWndProc(Msg); end;
procedure TForm1.FormDestroy(Sender: TObject); begin DBCombobox1.WindowProc := FDBCombobox1OldWndProc; FDBCombobox1OldWndProc := nil; end;
procedure TForm1.Button1Click(Sender: TObject); begin DBCombobox1.ItemIndex := DBCombobox1.Items.Add('test'); end;
end. |
Der Auskommentierte Teil funktioniert nicht weil es sich wie gesagt um unterschiedliche Nachrichtentypen handelt....
Mit Freundlichen Grüßen,
Arno Nym