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

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

TrackBar [D7]


Oddin ©   (2005-01-22 00:04:00) 

Вопрос значит такой. Есть 2 TrackBar'a и CheckBox нужно изменяя позицию любого из 2х TrackBar'ов если CheckBox.Cheked изменить позцию другого, сделать чтобы оба TrackBar'a передвигались одновременно в независимости от того какой из TrackBar'ов в данный момент меняет позицию. Заранее спасибо.


Jel   (2005-01-22 02:14:00) [1]


> А что значит Sender as TTrackBar?

Это приведение типов. Не поленись, загляни в спраку, там это описано довольно подробно.


> Нужно меняя позицию trackbar2 изменить позицию TrackBar1
> с неизвестным значением TrackBar1.Мах

Если Max у обоих равны - будут равны и визуальные положения слайдеров при одинаковом Position. Если нет - нужно пересчитывать и зменять пропорционально. Если я правильно понял что ты хочешь получить.


oddin   (2005-01-22 01:18:00) [2]

А если так: значение TrackBar1.Мах 1го TrackBar'a неизвестно или постоянно меняется но это можно решить так trackbar1.Max := trackbar2.Maxили как то подругому. Нужно меняя позицию trackbar2 изменить позицию TrackBar1 с неизвестным значением TrackBar1.Мах


Oddin   (2005-01-22 00:49:00) [3]

А что значит Sender as TTrackBar?


Jel   (2005-01-22 00:45:00) [4]


> olookin ©   (22.01.05 00:36) [1]

Твой вариант красивее. :)


Jel   (2005-01-22 00:37:00) [5]

Можно попробовать так. Обоим TrackBar-ам назначить один обработчик OnChange. В нем написать:


 If CheckBox1.Checked then begin
   if Sender = TrackBar1 then
     TrackBar2.Position := TrackBar1.Position
   else
     TrackBar1.Position := TrackBar2.Position;
 end;


Не слишком красиво, но работает. :)


olookin   (2005-01-22 00:36:00) [6]

в TrackBar1.OnChange

if CheckBox1.Checked then begin
 TrackBar1.Position:=(Sender as TTrackBar).Position;
 TrackBar2.Position:=(Sender as TTrackBar).Position;
end;

Так?


Наверх

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