Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сортировка StringGrid-a  (Прочитано 7127 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ARTHES
Интересующийся

by
Offline Offline

« : 28-11-2008 21:40 » new

Добрый вечер!

Может подскажете, можно ли отсортировать StringGrid по столбцам силами самого StringGrid-а?
Если нет, то может есть что-то похожее с заложенной возможностью сортировки?
Функция-то очень простая и очень нужная, не может быть, чтобы небыло.

Заранее спасибо.
Записан
ARTHES
Интересующийся

by
Offline Offline

« Ответ #1 : 29-11-2008 23:12 » 

Вместо StringGrid-а использую ListView, свойство ViewStyle = vsReport.

Добавление новой строки в таблицу (4 столбца):
Код:
TListItem* ListItem;
ListItem = Form1->ListView1->Items->Add();
ListItem->Caption = string1;
ListItem->SubItems->Add(string2);
ListItem->SubItems->Add(string3);
ListItem->SubItems->Add(string4);

Сортировка таблицы при нажатии на заголовок столбца:
Код:
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
      TListColumn *Column)
{
        ColumnToSort = Column->Index;
        ((TCustomListView *)Sender)->AlphaSort();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListView1Compare(TObject *Sender,
      TListItem *Item1, TListItem *Item2, int Data, int &Compare)
{
        if (ColumnToSort == 0)
        {
                Compare = CompareText(Item1->Caption,Item2->Caption);
        }
        else
        {
                int ix = ColumnToSort - 1;
                Compare = CompareText(Item1->SubItems->Strings[ix], Item2->SubItems->Strings[ix]);
        }
}
//---------------------------------------------------------------------------

Вот и все! А я уже чуть сам не сел эту сортировку писать Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines