Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка содержимого таблицы по алфавиту


Roland88 ©   (2004-07-01 21:53:00) 

Есть StringGrid, в каждой строке первая ячейка содержит ФИО на русском языке. Как отсортировать строки таблицы в алфавитном порядке(по первой ячейке каждой строки).


GanibalLector   (2004-07-02 01:59:00) [1]

2 8ung  
А это еще зачем???
Что, неужели сложно самим написать?Не вижу ничего сложного.
Вот,например сортировка грида по возрастанию и убыванию.Точно таким же образом и с сортировкой по алфавиту.


procedure TForm1.SpeedButton2Click(Sender: TObject);
var i,ii:integer;
C_name,C_t1,C_t2:string;
begin
for ii:=1 to StringGrid2.rowcount-3 do
for i:=1 to StringGrid2.rowcount-2 do begin
      if StringGrid2.Rowcount-2>=i+1 then begin
        if strtoint(StringGrid2.Cells[2,i])>strtoint(StringGrid2.Cells[2,i+1]) then begin
                                                       C_name:=StringGrid2.cells[1,i];
                                                       C_t1:=StringGrid2.Cells[2,i];
                                                       C_t2:=StringGrid2.cells[3,i];
                 StringGrid2.Cells[1,i]:=StringGrid2.Cells[1,i+1];
                 StringGrid2.Cells[2,i]:=StringGrid2.Cells[2,i+1];
                 StringGrid2.Cells[3,i]:=StringGrid2.Cells[3,i+1];
                                                      StringGrid2.Cells[1,i+1]:=C_name;
                                                      StringGrid2.Cells[2,i+1]:=C_t1;
                                                      StringGrid2.Cells[3,i+1]:=C_t2;
                                                                          end;
                                         end;
                                       end;

///////////////////////////////

for ii:=1 to StringGrid3.rowcount-3 do
for i:=1 to StringGrid3.rowcount-2 do begin
      if StringGrid3.Rowcount-2>=i+1 then begin
        if strtoint(StringGrid3.Cells[3,i])<strtoint(StringGrid3.Cells[3,i+1]) then begin
                                                       C_name:=StringGrid3.cells[1,i];
                                                       C_t1:=StringGrid3.Cells[2,i];
                                                       C_t2:=StringGrid3.cells[3,i];
                 StringGrid3.Cells[1,i]:=StringGrid3.Cells[1,i+1];
                 StringGrid3.Cells[2,i]:=StringGrid3.Cells[2,i+1];
                 StringGrid3.Cells[3,i]:=StringGrid3.Cells[3,i+1];
                                                      StringGrid3.Cells[1,i+1]:=C_name;
                                                      StringGrid3.Cells[2,i+1]:=C_t1;
                                                      StringGrid3.Cells[3,i+1]:=C_t2;
                                                                          end;
                                         end;
                                       end;
end;


8ung   (2004-07-01 22:15:00) [2]

Есть компонент TBKStringGrid. Он подойдёт. Посмотри на torry.ru


Наверх

Титульная страница Поиск, карта сайта Написать письмо