Hallo,
Zitat von
ereetzer:
Hallo,
das Thema ist ja schon etwas älter, aber da ich gerade auch das Problem hatte in der DBLookupComboBox mit der Maus zu scrollen
und dazu hier keine Lösung außer eine eigene Komponente extra dafür gefunden hatte, hier mal die Lösung dazu: (also die Umsetzung von Union´s Vorschlag)
Als erstes Mal im OnCreate Ereignis des Hauptformulares wie folgt deklarieren:
Application.OnMessage := self.HandleMousewheel;
Dann eine Prozedur einfügen:
Delphi-Quellcode:
procedure TForm1.HandleMousewheel(var Msg: TMsg; var Handled: Boolean);
begin
case Msg.message of
WM_MOUSEWHEEL:
begin
if (Screen.ActiveForm.ActiveControl <> nil) and
(Screen.ActiveForm.ActiveControl.ClassName = 'TDBLookupComboBox') then
begin
Msg.message := WM_KEYDOWN;
Msg.lParam := 0;
if Msg.wParam > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := False;
end;
end;
end;
end;
Dann sollte das klappen.
Danke für Deine Lösung, muß ich gleich mal probieren.
Ich habe noch eine andere Frage bezüglich einer DBLookupListbox.
Vielleicht hast Du ja dafür auch eine Erklärung für mich.
Wieso wird das Clickereignis auf einen DBLookupListbox mehrfach ausgelöst?
Kennst Du dieses Verhalten?
Dirk