Код:
repeat
min1 := 0;
for I := 1 to (Length(byteArray)-1) do
if byteArray[i] < byteArray[min1] then min1 := i;
x1 := StrToInt(Edit21.Text);
case min1 of
0 :
begin
Edit1.Color := clLime;
yy1 := StrToInt(Edit16.text);
z1 := x1 - yy1 - z1;
end;
1 :
begin
Edit2.Color := clLime;
yy1 := StrToInt(Edit17.text);
z1 := x1 - yy1 - z1;
end;
2 :
begin
Edit3.Color := clLime;
yy1 := StrToInt(Edit18.text);
z1 := x1 - yy1 - z1;
end;
3 :
begin
Edit4.Color := clLime;
yy1 := StrToInt(Edit19.text);
z1 := x1 - yy1 - z1;
end;
4 :
begin
Edit5.Color := clLime;
yy1 := StrToInt(Edit20.text);
z1 := x1 - yy1 - z1;
end;
end;
for I := min1 to Length(byteArray) - 2 do
byteArray[i] := byteArray[I + 1];
SetLength(byteArray, Length(byteArray) - 1);
if z1 <= 0 then Break; //шагает отсюда
until True;
Label16.Caption:= IntToStr(z1); //сразу сюда, не затрагивая until
end;
и из за этого цикл не повторяется