Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   D5 /W10 Kein Scrollen im Quellcode mit Mausrad (https://www.delphipraxis.net/197279-d5-w10-kein-scrollen-im-quellcode-mit-mausrad.html)

Alleby 26. Jul 2018 09:07

D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Hallo,
wenn ich in den Einstellungen der Maus (Windows 10) beim Drehen des Mausrades eine Seite scrollen einstelle, reagiert D5 in der VCL nicht mehr auf das Drehen des Mausrades.
Hat jemand eine Idee wie man das beseitigen kann??
Grüsse
Alleby

Bernhard Geyer 26. Jul 2018 10:28

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Evtl. mal eine Update der Delphi-IDE durchführen.
D5 wird vermutlich dieses Windows-Feature noch nicht unterstützten.

EWeiss 26. Jul 2018 10:52

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
WM_MOUSEWHEEL des Control das du zum scrollen verwendest überschreiben anschließend die Messagen von Hand verarbeiten\implementieren.
oops.. sorry sehe gerade er meint das scrollen in der IDE (Quelltext)

gruss

Frickler 26. Jul 2018 11:12

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1408752)
Evtl. mal eine Update der Delphi-IDE durchführen.
D5 wird vermutlich dieses Windows-Feature noch nicht unterstützten.

Doch klar. Normalerweise unterstützt D5 das Scrollen im Quelltext. In selbst geschriebenen Programmen muss man ins Hauptformular eine "ApplicationEvents" Komponente droppen und dann ein OnMessage Event definieren, etwa so (hier als Beispiel für TDBGrid):

Delphi-Quellcode:
procedure TMainMenu.AppEventsMessage(var Msg: tagMSG;
  var Handled: Boolean);
begin
  case Msg.message of
    WM_MOUSEWHEEL:
    begin
      if (Screen.ActiveForm.ActiveControl <> nil) and
         (Screen.ActiveForm.ActiveControl.ClassName = 'TDBGrid') then
      begin
        // die Mousewheel Message wird in einen Tastendruck umgewandelt
        Msg.message := WM_KEYDOWN;
        Msg.lParam := 0;

        if Msg.wParam > 0 then
          Msg.wParam := VK_UP
        else
          Msg.wParam := VK_DOWN;

        // wir sind noch nicht fertig, schliesslich soll der Tastendruck ausgewertet werden
        Handled := False;
      end;
    end;
  end;
end;
Das gilt dann für alle Formulare des Projektes.

himitsu 26. Jul 2018 13:14

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Frickler (Beitrag 1408757)
In selbst geschriebenen Programmen muss man ins Hauptformular eine "ApplicationEvents" Komponente droppen und dann ein OnMessage Event definieren,

Delphi 5 kennt noch kein Delphi-Referenz durchsuchenTApplicationEvents, also dort muß es noch manuell an Application.OnMessage dran,
und für IDE muß das dann auch noch via OpenToolsAPI in die IDE rein und dort auch noch das Application erstmal suchen.

Oder ein MouseHook via OTA in die IDE, der das umschreibt.

Bernhard Geyer 26. Jul 2018 13:27

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Frickler (Beitrag 1408757)
Doch klar. Normalerweise unterstützt D5 das Scrollen im Quelltext. In selbst geschriebenen Programmen muss man ins Hauptformular eine "ApplicationEvents"

Es geht um die IDE und Seitenweises scrollen.

jaenicke 26. Jul 2018 13:48

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Alleby (Beitrag 1408736)
wenn ich in den Einstellungen der Maus (Windows 10) beim Drehen des Mausrades eine Seite scrollen einstelle, reagiert D5 in der VCL nicht mehr auf das Drehen des Mausrades.

Leider funktioniert das auch mit der aktuellsten Version nicht. In Delphi 10.2 (die es ja als Community Edition kostenlos gibt, vielleicht wäre das eine Alternative zu Delphi 5?) passiert das gleiche.

Ich habe gerade keine Zeit zu schauen, ob es schon eine Bugmeldung dazu gibt.

himitsu 26. Jul 2018 14:40

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Eigentlich ja ein Bug im Windows ... wenn die was Neues einbauen, dann könnten sie auch das Result dieses neuen Events prüfen und wenn nicht erfolgreich, dann nochmal das alte Zeilenscrollen nachwerfen.

Frickler 26. Jul 2018 15:39

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von himitsu (Beitrag 1408766)
Zitat:

Zitat von Frickler (Beitrag 1408757)
In selbst geschriebenen Programmen muss man ins Hauptformular eine "ApplicationEvents" Komponente droppen und dann ein OnMessage Event definieren,

Delphi 5 kennt noch kein Delphi-Referenz durchsuchenTApplicationEvents, also dort muß es noch manuell an Application.OnMessage dran,
und für IDE muß das dann auch noch via OpenToolsAPI in die IDE rein und dort auch noch das Application erstmal suchen.

Oder ein MouseHook via OTA in die IDE, der das umschreibt.

Hast Du ein anderes Delphi 5 als ich? Ich habs hier für alte Projekte in einer VM laufen. Und da a) habe ich im Reiter "Zusätzlich" die TApplicationEvents Komponente und b) kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.

Mein Programmierbeispiel ist aus einem alten Projekt, welches halt noch im D5 Quelltext vorliegt.

P.S.: in c:\Programme\Borland\Delphi5\Source\Vcl liegt die "appevents.pas" vom 3.2.2000.

Uwe Raabe 26. Jul 2018 16:08

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Frickler (Beitrag 1408786)
kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.

Auch wenn unter Windows 10 das seitenweise Scrollen eingestellt ist? (Eventuell die IDE dann neu starten)

himitsu 26. Jul 2018 16:29

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Sicher?

Ich dachte TApplicationEvents wurde erst vor Kurzem (XEirgendwas) eingebaut. :gruebel:

KodeZwerg 26. Jul 2018 17:13

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Auf meiner D5 CD ist diese .pas Datei auch, zwar älter (1999) aber vorhanden.

jaenicke 26. Jul 2018 19:35

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408792)
Auch wenn unter Windows 10 das seitenweise Scrollen eingestellt ist? (Eventuell die IDE dann neu starten)

Ja, der Neustart ist erforderlich. Ansonsten ändert sich gar nichts, anders als bei anderen Programmen.

EWeiss 26. Jul 2018 20:07

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

TApplicationEvents
Was hat TApplicationEvents mit der IDE zu tun?
Musst du mir mal näher erläutern.

Zitat:

kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.
Na dann zeig mal wie das funktioniert denn bei mir geht es auch nicht.

Zitat:

wenn ich in den Einstellungen der Maus (Windows 10) beim Drehen des Mausrades eine Seite scrollen einstelle, reagiert D5 in der VCL nicht mehr auf das Drehen des Mausrades.
Das scheint kein Windows 10 spezifisches Problem zu sein.
Auch unter Win7 64Bit D2010 funktioniert das scrollen innerhalb der IDE dann nicht.

Zitat:

Eigentlich ja ein Bug im Windows
Und nein es ist kein Bug unter Windows denn bei allen anderen Anwendungen funktioniert das scrollen wenn 1 Bildschirmseite eingestellt ist.

gruss

Frickler 27. Jul 2018 09:23

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von EWeiss (Beitrag 1408808)
Zitat:

kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.
Na dann zeig mal wie das funktioniert denn bei mir geht es auch nicht.

gruss

War ein Missverständnis. Hier geht es auch nicht. Und zwar schon unter Windows XP nicht mehr (7, 8.1 und 10 auch nicht) und weder mit D5, D7, XE, XE6 oder 10.2. Ist also ein genereller Ausfall. Die Mausrad-Messages tauchen aber schon in der Windows.pas von Delphi 3 auf und in Delphi 5 sind dann die OnMouseWheel* Events implementiert, wobei der in der Systemsteuerung angegebene Zeilenscrollparameter zwar in TMouse.WheelScrollLines abgelegt wird, aber nirgendwo benutzt.... und "Bildlauf 1 Bildschirmseite" entspricht "WheelScrollLines = MAX(Cardinal)".

Alleby 27. Jul 2018 11:19

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1408768)
Zitat:

Zitat von Frickler (Beitrag 1408757)
Doch klar. Normalerweise unterstützt D5 das Scrollen im Quelltext. In selbst geschriebenen Programmen muss man ins Hauptformular eine "ApplicationEvents"

Es geht um die IDE und Seitenweises scrollen.

Ja genau! Das zeilenweise Scrollen geht ja!!

Alleby 27. Jul 2018 11:22

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408792)
Zitat:

Zitat von Frickler (Beitrag 1408786)
kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.

Auch wenn unter Windows 10 das seitenweise Scrollen eingestellt ist? (Eventuell die IDE dann neu starten)

Ja darum geht es! Und die IDE muss nach dem Ändern der Einstellung neu gestartet werden. Das hat mich auch sehr lange irritiert.

EWeiss 27. Jul 2018 11:42

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Zitat:

Zitat von Alleby (Beitrag 1408859)
Zitat:

Zitat von Uwe Raabe (Beitrag 1408792)
Zitat:

Zitat von Frickler (Beitrag 1408786)
kann ich sehr wohl im Quelltext (d.h. in der IDE) mit dem Mausrad scrollen.

Auch wenn unter Windows 10 das seitenweise Scrollen eingestellt ist? (Eventuell die IDE dann neu starten)

Ja darum geht es! Und die IDE muss nach dem Ändern der Einstellung neu gestartet werden. Das hat mich auch sehr lange irritiert.

Trotz allem funktioniert es nicht.

Denke das es ohne eigenen Hook in die IDE selbst es nicht funktionieren wird.
Scheint so das Seitenweise scrollen von der IDE nicht unterstützt wird.. Echt lustig so was.
Ok.. bin raus wurde alles gesagt.

PS:
Zitat:

und "Bildlauf 1 Bildschirmseite" entspricht "WheelScrollLines = MAX(Cardinal)".
Normaler weise wird MAX(Cardinal) vom System verwaltet.
Was ich damit sagen will..

Delphi-Quellcode:
    WM_MOUSEWHEEL:
      begin
        SendMessageW(WinHandle, WM_SETREDRAW, Integer(False), 0);
        If wP > 0 Then
          direction := -1
        else
          direction := 1; // wird ignoriert wenn unter Windows bsp. 3 Zeilen scrollen eingestellt ist

        if ListCount(WinHandle) > 0 then
        begin
          if (ListGetTopIndex(WinHandle) = 1) and (direction = -1) then
          begin
            ListSetTopIndex(WinHandle, 1);
            Result := 1;
            exit;
          end;
          ListSetTopIndex(WinHandle, ListGetTopIndex(WinHandle) + direction);
        end;
      end;
gruss

yogie 6. Jun 2019 07:11

AW: D5 /W10 Kein Scrollen im Quellcode mit Mausrad
 
Hallo zusammen,
ich muß diesen alten Beitrag aus aktuellem Anlaß nochmal aktivieren.

Seit kurzer Zeit kann ich in der Delphi IDE nicht mehr mit dem Mausrad durch den Quelltext scrollen, was vorher problemlos lief. Ich vermute die Änderung trat nach einem Ausfall der Stromversorgung an meinem Notebook auf, was zu einem Abbruch von Windows führte.

System ist
- eMashine Notebook E725
- WIN 7, 64 Bit
- DELPHI 6 (ja es ist alt, aber ich bin sehr zufrieden damit)

Nochmal: Es geht um das Scrollen in der IDE, nicht um das Scrollen in selber erstellten Programmenn.

Das Scrollen mit dem Mausrad in WORD oder Firefox usw. funktioniert, nur in der DELPHI IDE klappt es nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr.

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