Показать сообщение отдельно
  #2  
Старый 09.12.2008, 11:39
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Почему то новички путают индексы при обращении к ячейкам StringGrid.
Первый в квадратных скобках индекс колонки, второй через запятую - строки, а не наоборот, хотя легко увидеть при наведении мышки на слово Cell:
"[ACol : Integer; ARow : Integer]".

Классический "пузырьковый" метод сортировки (или как его назвал автор темы "метод обмена"):
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
  i, c, j : integer;
  StopSort : Boolean;
begin
  for I := P downto 0 do begin
    StopSort := True;
    for J := 1 to I do
      if a[J-1] > a[J] then begin //if a[J] > a[J-1] then begin //изменяет порядок сортировки
        c := A[J];
        A[J] := A[J-1];
        A[J-1] := c;
        StopSort := False;
      end;
    if StopSort then Break;
  end;

  for i := 0 to P do
    //!!!в квадр. скобках первым идет индекс колонки,затем индекс строки
    stringGrid1.cells[0, i] := IntToStr(a[i]);
end;
Как у автора сделано тоже работает нормально, только массив помещать в StringGrid надо после сортировки и не путать индексы.
__________________
Не забывайте делать резервные копии
Ответить с цитированием