Как сортировать MSHFlexGrid ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Как сортировать MSHFlexGrid ?

Сообщение Shurik90 » 15.12.2003 (Пн) 10:29

У этого самого зверя (MSHFlexGrid) есть параметр .Sort, я даже нашёл пример в интернете:

Код: Выделить всё
Private Sub DoSort()
   MSHFlexGrid1.Col = 0
   MSHFlexGrid1.ColSel = MSHFlexGrid1.Cols - 1
   MSHFlexGrid1.Refresh
   MSHFlexGrid1.Sort = 1
End Sub


Но он напрочь отказывается работать. Выдаёт ошибку : "Method 'Sort' of object 'IMSHFlexGrid' failed"

Что делать ? Как отсортировать данные в Гриде по какому-то столбцу ?

Заранее спасибо!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.12.2003 (Пн) 12:13

Насколько я понимаю, нужно вначале описать событие MSHFlexGrid1_Compare, в котором нужно установить переменную Cmp (в ней находится результат сравнения двух строк, Row1 и Row2)
Lasciate ogni speranza, voi ch'entrate.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 15.12.2003 (Пн) 14:00

Да нет... Event нужен, если MSHFlexGrid1.Sort = flexSortCustom, то есть мы сами определяем, как сравнивать. А в данном случае используется стандартное сравнение строк (flexSortGenericAscending = 1).

Чтобы по какой-то конкретной колонке отсортировать надо просто Col выставить. ColSel выставляется дополнительно, если надо отсортировать несколько колонок одновременно.

А почему не работает - не понятно :( . Shurik90, какие данные у тебя в гриде? Как ты его инициализируешь - как там данные появились?

Shurik90
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 15.06.2003 (Вс) 23:49

Сообщение Shurik90 » 20.12.2003 (Сб) 15:22

Нашёл я почему не работает и очень удивился: в Properties --> Bands есть ColumnHeader, если есть галочка - выдаёт ту самую ошибку, нет галочки - сортирует как большой...
Всем спасибо !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 2

    TopList