Bei hundert?
Für welchen Regler gilt das, Masterregler oder für alle?
Falls es für alle ist - heißt das, dass kein Regler mehr inkrementiert werden darf, wenn schon eines 100 erreicht hat?
Falls das so ist, müsste da eig. nur eine kleine Abfrage und zwar, ob alle Regler < 100 und > 0 sind.
Pass mal im Sourceode folgendes an:
Delphi-Quellcode:
procedure TForm1.MasterChange(Sender: TObject);
var
Difference: Integer;
i: Integer;
t: TTrackbar;
begin
Difference := Master.Position - oldMasterPosition;
oldMasterPosition := Master.Position;
for i := 1 to 5 do
begin
t := FindComponent('Trackbar' + IntToStr(i)) as TTrackbar;
if Sign(Difference) = 1 then
begin
if t.Position = 100 then
Abort;
end else
if t.Position = 0 then
Abort;
end;
// alle 5 trackbars durchgehen und den neuen wert anwenden
for i := 1 to 5 do
begin
t := FindComponent('Trackbar' + IntToStr(i)) as TTrackbar;
t.Position := Max(Min(t.Position + Difference, 100), 0);
end;
end;
Dürfte dann so aussehen...