unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls; type TScrollBox=Class(VCL.Forms.TScrollBox) procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL; procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; private FOnScrollVert: TNotifyEvent; FOnScrollHorz: TNotifyEvent; public Property OnScrollVert:TNotifyEvent read FOnScrollVert Write FonScrollVert; Property OnScrollHorz:TNotifyEvent read FOnScrollHorz Write FonScrollHorz; End; TForm3 = class(TForm) ScrollBox1: TScrollBox; Panel1: TPanel; Panel2: TPanel; ScrollBox2: TScrollBox; Panel3: TPanel; Panel4: TPanel; procedure FormCreate(Sender: TObject); private procedure MyScrollHorz(Sender: TObject); procedure MyScrollVert(Sender: TObject); end; var Form3: TForm3; implementation {$R *.dfm} { TScollBox } procedure TScrollBox.WMHScroll(var Message: TWMHScroll); begin inherited; if Assigned(FOnScrollHorz) then FOnScrollHorz(Self); end; procedure TScrollBox.WMVScroll(var Message: TWMVScroll); begin inherited; if Assigned(FOnScrollVert) then FOnScrollVert(Self); end; procedure TForm3.MyScrollVert(Sender: TObject); begin Scrollbox2.VertScrollBar.Position := Scrollbox1.VertScrollBar.Position end; procedure TForm3.MyScrollHorz(Sender: TObject); begin Scrollbox2.HorzScrollBar.Position := Scrollbox1.HorzScrollBar.Position end; procedure TForm3.FormCreate(Sender: TObject); begin ScrollBox1.OnScrollVert := MyScrollVert; ScrollBox1.OnScrollHorz := MyScrollHorz; end; end.
两个ScrollBox同步滚动
最新推荐文章于 2024-05-25 10:04:55 发布