Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBLookupCombobox Scrollen (https://www.delphipraxis.net/59405-dblookupcombobox-scrollen.html)

renekr 21. Dez 2005 21:46

Datenbank: SQL 2005 • Version: 2005 • Zugriff über: ado

DBLookupCombobox Scrollen
 
Hi @,

Kann mir ev. jemand einen Trick verraten wie ich in einer DBLookupCombobox das Scrollen per Mausrad aktivieren kann?

danke.

bwolf 11. Mai 2007 10:39

Re: DBLookupCombobox Scrollen
 
Jo,

das wüßte ich auch sehr gern - weiß mittlerweile jemand wie das geht ?

marabu 11. Mai 2007 11:01

Re: DBLookupCombobox Scrollen
 
Hallo,

vielleicht hilft euch beiden dieser Thread weiter: dblookupcombo gibts was besseres

Freundliche Grüße

Union 11. Mai 2007 11:52

Re: DBLookupCombobox Scrollen
 
Du könntest WM_MOUSEWHEEL Nachrichten abfangen und diese dann auf WM_KEYDOWN mit VK_UP / VK_DOWN patchen. Dann brauchst Du keine eigene Komponente.

ereetzer 7. Apr 2008 23:13

Re: DBLookupCombobox Scrollen
 
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:

Delphi-Quellcode:
  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.

d6lpz 8. Apr 2008 07:54

Re: DBLookupCombobox Scrollen
 
Hallo,

Zitat:

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:

Delphi-Quellcode:
  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

ereetzer 8. Apr 2008 10:30

Re: DBLookupCombobox Scrollen
 
Zitat:

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
Hallo,

habs grad mal probiert bei mir. Kann das Problem aber nicht nachvollziehen. Funktioniert bei mir so, wie es soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz