Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Зависимость между TrackBar'ми


Автор: LordDon 30.11.2009, 22:34
Во общем есть три TrackBar'а, и переменная Energy равная 100.
Как можно сделать так чтобы Position у всех трех TrackBar'ов не превышал 100.
Т.е. если в первом сделали 10 то во втором можно будет установить мах 90.
Например:
TrackBar1.Position=90
TrackBar2.Position=10
TrackBar3.Position=0
или
TrackBar1.Position=50
TrackBar2.Position=25
TrackBar3.Position=25 

Автор: amsoft 1.12.2009, 08:48
Код

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Randomize;
TrackBar2.Max := Random(Energy - TrackBar1.Position);
TrackBar3.Max := Enegry - TrackBar1.Position - TrackBar2.Max;
end; 

Автор: LordDon 1.12.2009, 09:19
А при чем здесь рандом?

Автор: amsoft 1.12.2009, 09:49
надо чтобы максимальная величина всех Position'ов не превышала 100 (Energy)
в первом устанавливаем вручную
во втором я решил установить в случайном порядке, а в третьем уже добить по первым двум.

PS по условию у тебя не написано, в каком порядке должны меняться Max в остальных трекбарах
PPS это лишь образец

Автор: LordDon 1.12.2009, 11:32
Утро вечера мудреней... Вообщем я сделал и вот что получилось:
Код

if (TrackBar1.Position+TrackBar2.Position+TrackBar3.Position)<=100 then
    begin
      Label6.Caption:=IntToStr(TrackBar1.Position);
      Energy:=100-(TrackBar1.Position*10+TrackBar2.Position+TrackBar3.Position);
      Label2.Caption:='Energy:'+IntToStr(Energy);
    end;


и так в каждом TrackBar'е


M
THandle
Модератор: используйте подсветку кода!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)