A. TrackBar1 TrackBar2 TrackBar3 为一个组,三个Position的和加起来为100
  即(当TrackBar1.Position增加2,Position2 和Position3就减少1)
B. TrackBar的Position的值加起来不能高出100,即TrackBar1为90时,那么  TrackBar2.Position或TrackBar3.Position就只能移动到10,就不能再向前动!!! 可转到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2504891

解决方案 »

  1.   

    A. TrackBar1 TrackBar2 TrackBar3 为一个组,三个Position的和加起来为100
      即(当TrackBar1.Position增加2,Position2 和Position3就减少1)procedure TForm1.TrackBar1Change(Sender: TObject);
    begin
     TrackBar2.Position := TrackBar1.Position div 2;
     TrackBar3.Position := 100 - TrackBar2.Position - TrackBar1.Position;
    end;
      

  2.   

    var OldP: integer;
    procedure TForm1.TrackBar1Change(Sender: TObject);
    var ip: integer;
    begin
     ip := TrackBar1.Position - Oldp;
     TrackBar2.Position := TrackBar2.Position - (ip div 2);
     TrackBar3.Position := TrackBar3.Position - (ip div 2);
     Oldp := TrackBar1.Position;
    end;procedure TForm1.TrackBar2Change(Sender: TObject);
    begin
     if (TrackBar1.Position + TrackBar2.Position + TrackBar3.Position) > 100 then
      TrackBar2.Position := 100 -  (TrackBar1.Position + TrackBar3.Position);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
       Oldp := TrackBar1.Position;
    end;