Hallo Panthrax, so klappt das natürlich noch besser
danke.
Ich habe mal die Scrollbar des Partner Memos rausgeholt und die MouseWheel Prozedur hinzugefügt, welche auch auf das Mausrad reagieren zu scheint, wenn nur die Scrollbar des TMyMemo vorhanden ist. Allerdings weiß ich nicht wie ich jetzt dem Partner Memo mitteilen kann, dass es das selbe macht wie das Hauptmemo. So wie ich es gemacht habe klappt es jedenfalls nicht, man sieht aber, dass das andere Memo reagiert.
Hier mal der erweiterte Quelltext:
Delphi-Quellcode:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyMemo =
class(TMemo)
private
FPartner: TWinControl;
public
property Partner: TWinControl
read FPartner
write FPartner;
procedure WMVScroll(
var Message: TWMVScroll);
message WM_VSCROLL;
procedure MouseWheelHandler(
var Message: TMessage);
reintroduce;
message WM_MouseWheel;
end;
TForm3 =
class(TForm)
Memo1: TMemo;
StaticText1: TStaticText;
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
{ TMyMemo }
procedure TMyMemo.WMVScroll(
var Message: TWMVScroll);
begin
inherited;
if Assigned(FPartner)
then
FPartner.Dispatch(
Message);
end;
procedure TMyMemo.MouseWheelHandler(
var Message: TMessage);
begin
inherited;
SendMessage(FPartner.Handle,WM_VSCROLL,SB_VERT,0);
end;
{ TForm3 }
procedure TForm3.FormCreate(Sender: TObject);
var
Memo: TMyMemo;
begin
with TMyMemo.Create(Self)
do
begin
Parent := Self;
Left := 3;
Top := 8;
Width := 185;
Height := 89;
ScrollBars := ssVertical;
Lines.Text := Memo1.Lines.Text;
Partner := Memo1;
end;
end;
end.