Главная страница
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.012 c
1-60676
mmb
2002-08-05 11:18
2002.08.19
Threads: можно ли из одного потока запустить и остановить другой


3-60492
Radimir
2002-07-29 12:11
2002.08.19
Господа, помогите с запросом


4-60908
SPeller
2002-06-16 15:43
2002.08.19
GlobalAlloc


1-60734
user965
2002-08-07 12:49
2002.08.19
listbox


3-60506
DAO
2002-07-27 21:40
2002.08.19
Как прервать процесс соединения TADOConnection с MSSQL?