Сортировка Stringgrid-a

  • Автор темы ARTHES
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

ARTHES

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

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

Заранее спасибо.
 
A

ARTHES

#3
Вместо 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]);
}
}
//---------------------------------------------------------------------------

Вот и все! А я уже чуть сам не сел эту сортировку писать :)
 
Статус
Закрыто для дальнейших ответов.