holysh писал(а):добавлю цельІй код:
Если бы я сказал, что с этого следовало начинать, это была бы неправда, потому что начинать следовало бы с текста задания, к которому приложен текущий проект, чтобы помогальщикам, если таковые найдутся не нужно было рассовывать кнопочки по формочкам.
Что же мы видим: имеется статический массив 
А[1..100], который заполняется частично, начиная с 
нулевого индекса, но сортируется всегда целиком. Если в параметрах проекта включить проверку диапазона, это даже не скомпилируется.
Предлагаю заменить статический массив динамическим, ну и сортировки лучше вынести в отдельные процедуры, принимающие открытый массив, тогда не нужен будет Generics.Collections.
- Код: Выделить всё
 var
  Form1: TForm1;
  A: array of Integer;
  procedure Sort(var a: array of Integer);
  procedure SortDesc(var a: array of Integer);
implementation
{$R *.lfm}
{ TForm1 }
procedure Sort(var a: array of Integer);
var
  i, j, temp: Integer;
begin
  // Сортировка массива A по росту
 for i := 0 to High(a)-1 do
   for j := i + 1 to High(a) do
     if a[i] > a[j] then
     begin
       temp := a[i];
       a[i] := a[j];
       a[j] := temp;
     end;
end;
procedure SortDesc(var a: array of Integer);
var
  i, j, temp: Integer;
begin
 // Сортировка массива А по убьІванию
  for i := 0 to High(a)-1 do
    for j := i + 1 to High(a) do
      if a[i] < a[j] then
      begin
        temp := a[i];
        a[i] := a[j];
        a[j] := temp;
      end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  Sort(A);
  // ВьІвод отсортированного массива A в ListBox2
  ListBox2.Clear;
  for i := 0 to High(A) do
    ListBox2.Items.Add(IntToStr(A[i]));
end;
procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer;
begin
  SortDesc(A);
  // ВьІвод отсортированного массива А в ListBox2
  ListBox2.Clear;
  for i := 0 to High(A) do
    ListBox2.Items.Add(IntToStr(A[i]));
end;
procedure TForm1.Button4Click(Sender: TObject);
var
  i, half: Integer;
begin
  if Length(A) > 1 then
  begin
    half := Length(A) div 2;
    Sort(A[0..half-1]);
    SortDesc(A[half..High(A)]);
    ListBox2.Clear;
    for i := 0 to High(A) do
      ListBox2.Items.Add(A[i].ToString);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  i, count: Integer;
begin
  // Получение кол-ва чисел с Edit1
  count := StrToIntDef(Edit1.Text, 0);
  // Проверка на допустимость кол-ва чисел
  if (count > 0) and (count <= 100) then
  begin
    SetLength(A, count);
    // Заполнение массива A ограниченньІм кол-вом чисел
    for i := 0 to High(A) do
    begin
      if i mod 2 = 0 then
        A[i] := Random(101) // положительньІе числа для парньІх позиций
      else
        A[i] := -Random(101); // отрицательньІе числа для непарньІх позиций
    end;
    // ВьІвод ограниченного массива A в ListBox1
    ListBox1.Clear;
    for i := 0 to High(A) do
      ListBox1.Items.Add(IntToStr(A[i]));
  end
  else
    ShowMessage('Введите значение количества (от 1 до 100).');
end;
end.
Как-то так, при условии, что я правильно понял задание.