Информатика. Программирование в Delphi
280
i,j,k:integer;
//буфер строки
s:string;
//значение последней редактируемой строки (сумма строк во всех
//ячейках строки); количество ячеек (колонок) в одной строке равно 3
//
−
ФИО, телефон, адрес до и после сортировки
old,new:string;
begin
with Form1.StringGrid1 do
// если количество строк меньше двух (учитывается, что будет
//одна фиксированная строка сверху таблицы с наименованием
//столбцов), то сортировка теряет смысл
if RowCount>2 then
begin
//начальное значение строки до сортировки
old:='';
//суммирование всех значений ячеек редактируемой строки
row
в
// одну переменную
// i
−
номер столбца
for i:=0 to ColCount-1 do
old:=old+Cells[i,row];
//сортировка таблицы
for i:=1 to RowCount do
for j:=1 to RowCount-2 do
//если содержимое предыдущей ячейки
//с ФИО больше содержимого следующей ячейки
if Cells[0,j]>Cells[0,j+1] then
//обмен местами j
−
й и j+1
−
й строк; k
−
номер колонки при обмене
for k:=0 to ColCount-1 do
begin
s:=Cells[k,j];
Cells[k,j]:=Cells[k,j+1];
Cells[k,j+1]:=s;
end;
//поиск последней редактируемой строки после сортировки
//с целью ее выделения
for i:=1 to RowCount-1 do
begin
//начальное содержимое i - строки
new:='';
//суммирование ячеек i - строки
for j:=0 to ColCount-1 do
new:=new+Cells[j,i];