Код:
while True do
begin
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;
end;
Почти так, только работать не будет, так как
z1 неинициализирована. Какое она должна иметь первоначальное значение тебе видней, я логику не проверял. И в следующий раз не ври, что так и делал. Красным я выделил ошибку в твоём рассуждении.