Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi 3 und per Mausrad im Editor scrollen (https://www.delphipraxis.net/51690-delphi-3-und-per-mausrad-im-editor-scrollen.html)

static_cast 17. Aug 2005 11:06


Delphi 3 und per Mausrad im Editor scrollen
 
Hoi,

ich hab folgendes Problem, und zwar bin ich gerade auf Arbeit und soll ein Modul für unsere Apllikation für einen Kunden erweitern, nun ja nichts besonderes nur das die Applikation noch etwas älter ist und in Delphi 3 gebaut wurde.

Soweit alles kein Problem, nur geht es einfach nicht im Editor per Mausrad den Code zu scrollen, und inzwischen treib mich dieses nichtfunktionierende Scrollen in den Wahnsinn.

Hat da jemand eine Idee?

Aber im Notfall könnte man doch auch ein Tool basteln das die WM_MOUSEWHEEL ggf. in ein WM_VSCROLL umbiegt? Falls es sowas nicht schon gibt...

Greets
Daniel

SirThornberry 20. Aug 2005 11:43

Re: Delphi 3 und per Mausrad im Editor scrollen
 
also ich würde die idee von dir aufgreifen und einfach die wm_mousewheel in wm_vscroll umformen

Luckie 20. Aug 2005 12:05

Re: Delphi 3 und per Mausrad im Editor scrollen
 
Das hat mich bei D3 auch zur Verzweiflung getrieben. Und ich aheb leider keine gescheite Lösung gefunden, geschweige denn rausgefunden, wo ran es liegt.

SirThornberry 20. Aug 2005 18:25

Re: Delphi 3 und per Mausrad im Editor scrollen
 
ich probiere gerade damit rum und bin jetzt bei einem mousehook
Delphi-Quellcode:
type
  T2Words = packed record
    Word1: Word;
    Word2: Word;
  end;
[...]
function MouseProc(nCode: Integer; AWPARAM: wParam; ALPARAM: lParam): LResult; Stdcall;
var LScrollInfo: TScrollInfo;
    LStruct: TMouseHookStruct;
    LWords: T2Words;
begin
  if nCode < 0 then
    result := CallNextHookEx(LHook, nCode, AWParam, ALPAram)
  else begin
    if AWParam = WM_MOUSEWHEEL then
    begin
      result := 1;
      GetScrollInfo(PMouseHookStruct(ALParam)^.hwnd, SB_VERT, LScrollInfo);


      LScrollInfo.nPos := LScrollInfo.nPos + 1;

      LWords.Word1 := SB_THUMBPOSITION;
      LWords.Word2 := LScrollInfo.nTrackPos;
      SetScrollInfo(PMouseHookStruct(ALParam)^.hwnd, SB_VERT, LScrollInfo, True);
      PostMessage(PMouseHookStruct(ALParam)^.hwnd, WM_VSCROLL, Integer(LWords), 0);
    end else
      result := CallNextHookEx(LHook, nCode, AWParam, ALPAram);
  end;
end;
ich wollte probehalber nur mal runterscrollen (also noch keine unterscheidung in welche Richtung das Rad dreht). Der Quelltext ist der letzte stand, leider wird dabei die Scrollbar voll ausgegraut.

ManuMF 20. Aug 2005 18:48

Re: Delphi 3 und per Mausrad im Editor scrollen
 
:arrow: Ist ein spezieller Maustreiber installiert?
Ich hab unter Windows XP gedacht, ich bräuchte den mitgeliferten nicht, aber die Maus hat dann immer da gescrollt, wo ich nicht wollte. Der Zusammenhang zu diesem Thema: In manchen Programmen ging das Scrollen gar nicht. Erst die Installation des Treibers bzw. des Steuerungprogramms (sehr oft verwendet - "Browser Mouse") hat das Problem gelöst.

SirThornberry 20. Aug 2005 22:37

Re: Delphi 3 und per Mausrad im Editor scrollen
 
es liegt schlicht weg daran das die Controls in D3 die mousewheel message noch nicht unterstützen. Somit ist eignetlich die einzige möglichkeit das man das Mouserad hookt und in eine andere message abwandelt die damals schon implementiert war.

orabimus 21. Aug 2005 17:00

Re: Delphi 3 und per Mausrad im Editor scrollen
 
Nur ganz kurz:

Das "Scrollen per Mausrad" ist eine Sache des "sehr speziellen Maustreibers" unter älteren Versionen von Windows. Finger weg!

Ab Win2k (SP4?) wird dieses "Scrollen per Mausrad" vom OS unterstützt.

Viel Spaß beim nächsten Eigentor :mrgreen:

mfg

static_cast 23. Aug 2005 15:16

Re: Delphi 3 und per Mausrad im Editor scrollen
 
Hallo Ihr,

der Maustreiber ist der Standard von Windows, aber daran wird es wohl nicht liegen sondern wie SirThornberry schon sagte an den verwendeten Controls in D3. Aber lustig ist das das Mausrad im OI Funzt.

Ich hatte aber auch irgendwo gelesen das es unter Win98/ME in D3 komplett Funktioniert hat.

Bin zwar vorerst erlößt von dem D3 Relikt aber denn noch ist der Codeansaz von SirThornberry interessant, und das nächste mal wo ich es wieder starten muss kommt bestimmt...


@orabimus
Was willst du uns damit sagen? Btw. Windows 98SE hatte das Mausrad schon vollständig Implementiert und das auch OHNE Hersteller-Treiber!

profmaster 23. Aug 2005 15:30

Re: Delphi 3 und per Mausrad im Editor scrollen
 
Hallo allesamt!

Wenn ich für meine Logitech-Maus mit Scrollrad den zugehörigen Treiber installiere, funktioniert bei mir auch das Scrollen im Editor. Bei den Kompos müßte ich nachschauen. Kann ich aber momentan nicht, da Treiber nicht installiert. Bei der SyneditKompo funktioniert das Scrollen per Mausrad auch ohne Treiber. So weit meine Erfahrungen.

Gruß

Profmaster


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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