![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TrackBar [D6, XP]
Sonic90 © (2007-09-15 13:42:00)Подскажите пожалуйста как сделать, чтобы при нажатии на TrackBar его ползунок сразу же переходил на место нажатия(чтобы не тянуть его до этого места).
{RASkov} (2007-09-15 15:13:00) [1]> [0] Sonic90 (15.09.07 13:42)
Может как нибудь так:
TForm1 = class(TForm)
....
TrackBar: TTrackBar;
procedure FormCreate(Sender: TObject);
private
OldWndProc: TWndMethod;
procedure NewWndProc(var Mes: TMessage);
end;
............
procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc:=TrackBar.WindowProc;
TrackBar.WindowProc:=NewWndProc;
end;
procedure TForm1.NewWndProc(var Mes: TMessage);
begin
if Mes.Msg=WM_LBUTTONDOWN then
TrackBar.Position:=Round((TrackBar.Max/(TrackBar.Width-20))*(TWMMouse(Mes).XPos-10));
OldWndProc(Mes);
end;
Только вместо констант (20 и 10) желательно узнать "правильные значения", но я не нашел их(или плохо искал)....
Впрочем может и не правильная у меня "матиматика", так как матиматика вообще у меня хромает :(