Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Вниз

Как отсортировать список в ComboBox типа Integer, т.е. 10 после 9 а не наоборот 


SL   (2001-12-23 07:30) [0]

Как отсортировать список в ComboBox типа Integer, т.е. 10 после 9 а не наоборот. Вообще-то мне нужно чтобы пользователь набирал текст в окне редактирования и там автоматически подставлялись значения из списка (без сортировки не работает). Можно конечно обрабатывать событие OnChange, но возможно есть более простой способ



MBo   (2001-12-23 09:38) [1]

так как в Комбо нет Custom сортировки, то можно так
function SortByVal(L: TStringList;I1,I2: Integer): Integer;
begin
result:=0;
try
if strtoint(l[i1])>strtoint(l[i2]) then result:=1
else if strtoint(l[i2])>strtoint(l[i1]) then result:=-1;
except
if l[i1]>l[i2] then result:=1
else if l[i2]>l[i1] then result:=-1;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var s:tstringlist;
begin
s:=tstringlist.create;
s.assign(cb1.items);
s.CustomSort(SortByVal);
cb1.items.assign(s);
s.free;
end;



SL   (2001-12-23 10:23) [2]

Это работает только если у cb1 свойство SORTED=FALSE (в этом случае при вводе значения с клавиатуры автоматически подставляется значение у которого первый символ соответствует нажатой клавише, т.е. если я нажимаю 1, потом 7, то появляется значение 7.., а мне нужно 17..)




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.019 c
3-28414           Mazer                 2001-12-07 10:54  2002.01.10  
DBF+DBT?


3-28421           NLO                   2001-12-07 12:29  2002.01.10  
Выполнить start transaction commit в процедуре InterBase 6


4-28551           Alibaba               2001-11-07 16:50  2002.01.10  
Привет!


3-28410           Don                   2001-12-07 16:01  2002.01.10  
Вывод текста в заголовке StringGrid-а вертикально


1-28492           Delphimun             2001-12-21 14:24  2002.01.10  
Как изменить букву на несколько букв вперёд(по алфавиту)?