Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.19;
Скачать: CL | DM;

Вниз

Численная сортировка   Найти похожие ветки 

 
Василич   (2002-08-05 12:09) [0]

Не подскажете, как отсортировать строки в ComboBox, если они представляют из себя численные значения, допустим у меня в ComboBox грузятся из базы некоторые численные значения, и получается так:

1024
128
16
160
192
24
256
32
4
48
512
64
8
96

а надо, чтобы была численная сортировка, а не строковая. Спасибо.


 
lenin   (2002-08-05 12:13) [1]

В ручную сортировать.


 
Василич   (2002-08-05 12:13) [2]

Как же вручную, если значения из базы данных вытаскиваются ?


 
lenin   (2002-08-05 12:16) [3]

А какая разница из базы или нет.


 
Ученик   (2002-08-05 12:18) [4]

WM_COMPAREITEM


 
Skier   (2002-08-05 12:21) [5]

>Василич
Можно так :
- перекачать все строки из ComboBox-а в TStringList.
- написать у него [TStringList-а] код метода CustomSort
- отсортировать строчки в TStringList-е
- засунуть строчки из TStringList-а обратно в ComboBox


 
c0pYc@t   (2002-08-05 12:51) [6]

а что strtoint не помогает?


 
Opuhshii   (2002-08-05 14:14) [7]

2Василич (05.08.02 12:13)
неужели даже метод пузырьковой сортировки вам неизвестен...


 
Skier   (2002-08-05 14:34) [8]

>Василич
А также : код быстрой сортировки (Хоора) можно подсмотреть
в Дельфийском примера по thread-ам...


 
IlyaA   (2002-08-05 15:07) [9]

Напиши собственный сортировщик


 
kull   (2002-08-05 18:49) [10]

А это не подойдет?
Select {field name} from {table name} order by {field name}

Данные приходят уже отсортированными...


 
Василич   (2002-08-05 22:05) [11]

>>kull

SELECT TOP 100 PERCENT RAM AS [Оперативная память]
FROM dbo.RAMs
ORDER BY RAM

Они не приходят отсортированными.

>>IlyaA

Каким образом ?

>> Ученик

Не подскажешь, как и когда обрабатывать это сообщение, и когда оно вообще возникает ?


 
kull   (2002-08-06 01:41) [12]


> Они не приходят отсортированными.

А RAM - это целочисленное поле или строка (может вообще вариантного типа)?
Если целочисленное, то что за БД у тебя?
Не приводит ли преобразование: RAM AS [Оперативная память] к нецелому типу?

Order by должен работать на ура, что то у тебя с запросом не то...



 
Василич   (2002-08-06 09:14) [13]

RAM smallint

MSSQL


 
Ученик   (2002-08-06 09:29) [14]

>Василич (05.08.02 22:05)
Все оказалось сложнее чем предполагалось, указанное сообщение посылается только, если ComboBox имеет стили CBS_OWNERDRAWFIXED и не имеет стилей CBS_HASSTRINGS, что влечет за собой дополнительные проблемы, поэтому в данном случае решение вряд ли подходит, сорри.


 
kull   (2002-08-06 11:16) [15]

2 Василич

Ну я не знаю. Я работаю с Interbase - у меня все с Order by в порядке. Если ORDER BY не сортирует, зачем он нужен?


 
IlyaA   (2002-08-06 12:13) [16]

Самый простой метод "Пузырька": (Вот тебе код)
Пусть данные в ListBox /надеюсь сам поймёшь как переделать/

For i:=0 to ListBox.Items.Count-1 do
For j:=ListBox.Items.Count-1 downto i do
If StrToInt(ListBox.Items[j]) < StrToInt(ListBox.Items[j-1]) then
begin
Tmp:=ListBox.Items[j];
ListBox.Items[j]:=ListBox.Items[j-1];
ListBox.Items[j-1]:=Tmp;
end;


Удачи.


 
Василич   (2002-08-06 13:44) [17]

>>IlyaA

Оно самое. Просто и конструктивно. Спасибо.


 
Song   (2002-08-06 16:10) [18]

Не надо никакого CustomSort(). У TStringList есть свойство Sorted. А у TComboBox.Items тип TStrings, прямая абстрактная зависимость... Зачем Вам пузырёк...? Тут и стакана хватит :-)


 
lenin   (2002-08-06 16:15) [19]

Sorted сортирует по алфавиту.


 
Василич   (2002-08-06 16:48) [20]

Да, я уже въехал. Все дело в том, что ComboBox.Sorted was True...., а сортировать данные в ComboBox"е не надо было...



Страницы: 1 вся ветка

Текущий архив: 2002.08.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
3-60508
EugeneP
2002-07-26 14:34
2002.08.19
Передача параметров ADO запросу


4-60920
Izyum
2002-06-13 22:47
2002.08.19
Как программно закрыть окно


1-60656
Начинаю
2002-08-08 16:29
2002.08.19
Как перед закрытием приложения...


14-60826
J_S
2002-07-22 11:52
2002.08.19
ActiveX в компонент


6-60768
budhha
2002-06-04 09:04
2002.08.19
PacketX