Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTrackBar и колесо мыши, как поменять направление движения?... 
:(
    Опции темы
bNet
Дата 16.2.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



Когда компонент TTrackBar разположен на форме горизонтально, при регулировке его колесом мыши, его движение инвертированое, тоесть когда кручу колесо вверх, бегунок движется влево, когда в низ - вправо. Но когда этот компонент стоит вертикально - регулировка колесом правильная.
Как исправить ошибку?
PM MAIL   Вверх
Snowy
Дата 16.2.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Это не бага - это фича.
Так и задумано. Смысл делать наоборот?
PM MAIL   Вверх
bNet
Дата 16.2.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



я использую этот компонент как реглятор громкости! получается кручу колесо вверх, а громкость снижается....

Это сообщение отредактировал(а) bNet - 16.2.2006, 13:53
PM MAIL   Вверх
Snowy
Дата 16.2.2006, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код
unit Unit1;

interface

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

type
  TTrackBar = class(ComCtrls.TTrackBar)
  private
    procedure WMWHEEL(var Msg: TMessage); message WM_MOUSEWHEEL;
  end;

  TForm1 = class(TForm)
    Vol: TTrackBar;
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TTrackBar.WMWHEEL(var Msg: TMessage);
begin
  if Msg.WParamHi - WHEEL_DELTA > 0 then Position := Position - 1
  else Position := Position + 1;
end;

end.

Добавлено @ 14:43
P.S. Для Win9x колесо либо не будет работать вообще (т.к. 9x-e не верят в существование колеса мыши и оно не является там системным), либо будет работать стандартно - на усмотрение драйвера мыши.
PM MAIL   Вверх
bNet
Дата 16.2.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



спасиба!
PM MAIL   Вверх
OblommOff
Дата 4.9.2013, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.4.2013

Репутация: нет
Всего: нет



Я бы посоветовал не менять обработку событий клавиатуры и мыши, а изменить взгляд на результат.
Например, если для TrackBar1 установлены свойства Min = 0 и Max = 1000, то в обработчике написать
Код

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  // вместо iVolume:= TrackBar1.Position пишем
  iVolume:= 1000 - TrackBar1.Position;
end;

Так меньше править и меньше будет неувязок с разной реакцией на мышь и кнопки вверх, вниз, PgUp, PgDn и прочее...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.