AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Interessantes Problem mit Scroll und Sendmessage
Thema durchsuchen
Ansicht
Themen-Optionen

Interessantes Problem mit Scroll und Sendmessage

Ein Thema von Shark99 · begonnen am 21. Apr 2010 · letzter Beitrag vom 24. Apr 2010
 
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Interessantes Problem mit Scroll und Sendmessage

  Alt 21. Apr 2010, 00:19
Es ist eine Form mit 2 Memo Komponenten, beide haben etwa 50 Zeilen Text im Design time.

Hier erstmals der Code.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  protected
    procedure WndProc(var Msg: TMessage); virtual;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  _OldProc: TWndMethod;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  _OldProc := Memo1.WindowProc;
  Memo1.WindowProc := WndProc;
end;

procedure TForm1.WndProc(var msg: TMessage);
begin
  case msg.Msg of
    WM_VSCROLL: SendMessage(Memo2.Handle, WM_VSCROLL,
        TWMVScroll(msg).ScrollCode, TWMVScroll(msg).Pos);
    WM_MOUSEWHEEL:
    begin SendMessage(Memo2.Handle, WM_VSCROLL,
        TWMVScroll(msg).ScrollCode, TWMVScroll(msg).Pos);
         caption := timetostr(now);
    end;
  end;
  _OldProc(msg);
end;

end.
Wenn man mit dem Mausrad im Memo1 Scrollt wird auch Memo2 gescrollt.

Alles funktioniert auf meinem PC, Delphi 5 + Windows 7 x64.

Ich schickte die Exe zu einem Freund (Windows 7 32 bit) und dort funktioniert es nicht und zwar das zweite Memo scrollt immer nach oben, d.h. egal ob ich nach oben oder unten links mit dem Mausrad scrolle, das rechte Memo bewegt sich immer nur nach oben!

Ich machte zwei weitere Tests unter VMWare mit WindowsXP 32bit und Windows7 64bit und in beiden VMs funktioniert es nicht richtig, d.h. das rechte Memo scrollt wieder nur nach oben!

Nach etwas mehr Untersuchung stelle ich fest dass auf meinem PC beim Scrollen mit dem Mausrad im Memo WM_VSCROLL ausgelöst wird, auf dem PC des Freundes und in beiden VMs wird hingegen beim Scrollen mit dem Mausrad WM_MOUSEWHEEL ausgelöst und da geht dann was bei der Übertragung zum zweiten Memo schief.

Hoffe jemand hat eine Vermutung was hier los ist!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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 by Thomas Breitkreuz