Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

scroll [D7, 2000, XP, 2003]


apic ©   (2007-08-20 08:20:00) 

Как перехватить или обработать событие нажать кнопки скроля на форме и вращение скроля (соответственно что бы можно было узнать вперед крутится или назад и на сколько щелчков прокрутилось)?


Dib@zol   (2007-09-08 16:02:00) [1]

Тфу, брет сморозил. Я хотел сказать - а нет ли у скролла промежуточных парентов до самОй формы, панели там всякие итп?


Dib@zol   (2007-09-08 15:47:00) [2]

Попробуй напрямую без ВЦЛьной обёртки послать скроллбоксу WM_*SCROLL через SendMessage. Если результата не будет - то это уже глюк Винды. Что в принципе маловероятно.


apic   (2007-09-08 15:14:00) [3]

Ставил точку останова, видимо сообщения WM_VSCROLL и WM_HSCROLL вообще до формы не доходят.


apic   (2007-09-08 14:03:00) [4]

Ни чего не работает, компилиться без ошибок, но форма ни на что не реагирует!!!!!!!!!!


Leonid Troyanovsky   (2007-08-20 10:09:00) [5]


> apic ©   (20.08.07 08:20)

> Как перехватить или обработать событие нажать кнопки скроля на форме


type
 TForm1 = class(TForm)
   ..
 private
   { Private declarations }
   procedure DisplayScrollXY;
   procedure WMVScroll( Var msg: TWMVScroll ); Message WM_VSCROLL;
   procedure WMHScroll( Var msg: TWMHScroll ); Message WM_HSCROLL;
 public
   { Public declarations }
 end;

implementation

{$R *.dfm}

procedure TForm1.DisplayScrollXY;
begin
 Caption := Format('Horz: %d Vert: %d', [GetScrollPos(Handle, SB_HORZ), GetScrollPos(Handle, SB_VERT)]);
end;

procedure TForm1.WMHScroll(var msg: TWMHScroll);
begin
 inherited;
 DisplayScrollXY;
end;

procedure TForm1.WMVScroll(var msg: TWMVScroll);
begin
 inherited;
 DisplayScrollXY;
end;

--
Regards, LVT.


Elen   (2007-08-20 09:37:00) [6]

Например так :

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   ListBox1: TListBox;
    procedure scl(var m:TWMScroll); message WM_Vscroll;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.scl(var m: TWMScroll);
begin
caption:=inttostr(m.ScrollCode);
inherited;
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо