//滚轮事件:ScrollBox1: TScrollBox; procedure TfrmReleateGQAccount.ScrollBox1MouseWheel(Sender: TObject; //也可以写在窗体事件中 Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin if WheelDelta<0 then ScrollBox1.Perform(WM_VSCROLL,SB_LINEDOWN,0) //发送消息 else ScrollBox1.Perform(WM_VSCROLL,SB_LINEUP,0); end;
object scrlbx1: TScrollBox Left = 1 Top = 1 Width = 479 Height = 379 Align = alClient Color = clBtnFace ParentColor = False TabOrder = 0 ExplicitLeft = 6 ExplicitTop = 2 end
SendMessage(scrlbx1.Handle,WM_VSCROLL,SB_LINEDOWN,0); 也可以通过这样的方式
function TControl.Perform(Msg: Cardinal; WParam: WPARAM; LParam: LPARAM): LRESULT; var Message: TMessage; begin {$IF DEFINED(CLR)} Message := TMessage.Create(Msg, WParam, LParam); {$ELSE} Message.Msg := Msg; Message.WParam := WParam; Message.LParam := LParam; Message.Result := 0; {$IFEND} if Self <> nil then WindowProc(Message); Result := Message.Result; end; property WindowProc: TWndMethod read FWindowProc write FWindowProc; TWndMethod = procedure(var Message: TMessage) of object; function TWinControl.DoHandleStyleMessage(var Message: TMessage): Boolean; begin Result := TStyleManager.HandleMessage(Self, Message, FWindowProc) end;
一、简介
ScrollBox(滚动框)部件是加上了水平、垂直滚行条的群组框部件,它在Additional页上,用作在窗体中提供一个可以多方向滚行的工具。如果您只想显示较大幅面的一个部分,并允许您的用户对其进行滚行操作,ScrollBar将是理想的选择。您可以先在全幅面的滚动框中进行全面设计,然后适当地缩小外框,两个方向的滚行条将自动显示。它的Position属性是集成在HorzScrollBar和VertScrollBar两个集属性下的,编程时,可以选定这两个属性进行操作。
编程时,在scrollbox控件中放置一个panel,设置panel的Align属性为alNone(切忌设置为alClient),适当放大panel的大小,滚动条就可以出来了;
也可以在scrollbar中放置TOleContainer控件,同样设置Align为alNone,SizeMode设置为smAutoSize,当使用TOleContainer显示Excel、Word等文档时,滚动条也会出现。