Listview中如何写滚动条的事件,如:当滚动条滚动到底的时候的事件!或拖动滚动条至最上面时的事件。
解决方案 »
- 如何消除奇偶场?
- 急救!Delphi有没有一个函数能将Double型转换成String型的?
- 耶,怪了...
- 关于ftp站点文件列表编程的问题
- 各位高手,帮忙看看! 谢了
- 关于双系统的问题(在线)
- 怎么恢复IE?
- SOS!急救!!哪位请高手告诉我:我对MS SQL 的表进行UPDATE、INSERT、DELETE等操作的代码错在哪里?正确的该怎样写? 我的e-mail:[email protected],请尽快告诉我!!谢谢!!
- 本人想出售几本书,有意者请进来看看。如《Delphi4编程技术内幕》等.
- 再问:MS SQL6.5 的.DAT文件怎么恢复,请高手帮忙,(100分绝对对线)
- delphi中有没有象C++当中的动态类型识别和vc中archive类似的类
- Delphi编程中图象的显示问题
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ComCtrls;
type
TForm1 = class(TForm)
ListView1: TListView;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FOldProc : TWndMethod;
procedure MyProc(var message : TMessage); end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyProc(var message: TMessage);
var
TheRange,TheRangeMin,TheRangeMax:integer;
SI: TScrollInfo;begin if message.Msg = WM_VSCROLL then
begin
SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;
GetScrollInfo(listview1.Handle, SB_VERT, SI);
if SI.nPos + SI.nPage > SI.nMax then ShowMessage('已经到底了!');
if SI.nPos =SI.nMin then ShowMessage('到头了!');
end; FOldProc(message);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FOldProc := listview1.WindowProc;
listview1.WindowProc := MyProc;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
listview1.Perform(WM_VSCROLL,SB_BOTTOM,0)
end;procedure TForm1.Button3Click(Sender: TObject);
begin
listview1.Perform(WM_VSCROLL,SB_TOP,0)
end;end.