【新人求助】如何让鼠标滚轮滚动同时让滚动条向下?
delphi吧
全部回复
仅看楼主
level 1
表示之前做的是java,经理让我参加个新的项目,需要用到delphi,各种凌乱啊。。。begin end,哭了。。
望吧友们不吝赐教。
2014年04月09日 05点04分 1
level 10
楼主我的语文很差,看不懂你的需求。
还有,你不觉得,应该多说说你的问题吗?
例如,打算控制啥东西。
2014年04月09日 05点04分 2
sorry可能我问题没有描述清楚,是这样的:一个panel里放着表单,让用户填写的,表单很长,需要TScrollBar,现在已经实现了用鼠标拖拽可以往下拉(Panel1.Top := -sb1.Position;这样实现的,不大懂其原理),但是鼠标的滚轮上下滚动的事件没有实现,不知道怎么才能实现,百度也不得其解
2014年04月09日 05点04分
level 10
您缺少看书。
我们一般用 DBGRID 当然,内置的不好。
我们选 EHDBGRID 或者 CXDBGRID 最次也用一个 DXDBGRID 。
这种控件,可以自动完成大部分工作。你只要连上数据源就可以了。
2014年04月09日 05点04分 3
level 10
不得不说, 搞 JAVA 和 搞 底层开发的。很少知道啥叫 RAD 。
2014年04月09日 05点04分 4
好吧,虽然不是很能看懂,但是感谢你的帮助[太开心]
2014年04月09日 05点04分
回复 wang_80920 :多谢你,用了scrollbox,问题解决了,只不过往下拉的时候页面不跟着走
2014年04月09日 07点04分
level 13
子类化接管主窗口的窗口过程,处理 WM_MOUSEWHEEL 消息
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
pnl1: TPanel;
scrlbr1: TScrollBar;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
OldWndProc: TWndMethod;
procedure NewWndProc(var m: TMessage);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.NewWndProc(var m: TMessage);
begin
if m.Msg = WM_MOUSEWHEEL then
begin
if ShortInt(m.WParamHi) > 0 then
Perform(WM_VSCROLL, SB_LINEUP, scrlbr1.Handle)
else
Perform(WM_VSCROLL, SB_LINEDOWN, scrlbr1.Handle);
end;
OldWndProc(m);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc := Self.WindowProc;
Self.WindowProc := NewWndProc;
end;
end.
2014年04月09日 12点04分 5
level 13
不管是 {} 还是 begin end;
如果不使用代码缩进,一样都是看得头疼
2014年04月09日 12点04分 6
level 5
在 ScrollBox 的 OnMouseWhell 事件中写:
if WheelDelta < 0 then
TScrollBox(Sender).Perform(WM_VSCROLL,SB_LINEDOWN,0)
else
TScrollBox(Sender).Perform(WM_VSCROLL,SB_LINEUP,0);
就可以响应滚轮了
2014年04月14日 00点04分 8
好的,谢谢你,已经接近啦,3q
2014年04月14日 03点04分
1