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

Вниз

Интересный момент с TListBox   Найти похожие ветки 

 
Song ©   (2003-04-17 13:52) [0]

Предыстория такова:
у меня выводится список данных для выбора пользователем в обычный TListBox. Это список улиц. Меня попросили сделать поиск по первой букве, что бы не выбирать нужную улицу из длиннющего списка, что я и сделал. Но на тот момент я совершенно забыл что у TListBox есть AutoComplete и начал изобретать велосипед, а именно:

procedure TNewSp1Form.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Var S: String;
begin
S:=Chr(Key);
TListBox(Sender).Perfrom(LB_SELECTSTRING,-1,Integer(PChar(S)));
end;


Этот код исправно работает, и делает что надо: нажимаешь букву "С" он прыгает к первой попавшейся улице, название которой начинаетя на "С". Нажимаешь на "О" - прыгает на улицу, которая начинается на "О".
Но выяснился очень интересный момент: когда нажимаешь кнопки быстро, он ищет по всему вхождению т.е. также как это делает AutoComplete. Вопрос: почему? Переменная S - локальная и в неё даётся только один символ от нажатой Key.


 
Song ©   (2003-04-17 19:35) [1]

Up!


 
Songoku ©   (2003-04-17 20:05) [2]

> Song ©

Возможно Winodows был очень хитро сделан.
И наверное кагда ты посылаешь несколько раз LB_SELECTSTRING сообщение в виде Char в ListBox, и промежуток между нажатиями очень мал. То тогда Windows собирает из них строку и ищет её в ListBox"e. По другому я деже себе придставить не магу!!!



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
1-563
Sirus
2003-04-16 12:18
2003.05.01
Как определить файл типа запись???


7-810
nickn
2003-03-10 13:45
2003.05.01
Интересный вопрос по работе с COM портом


14-708
paranoid
2003-04-12 20:10
2003.05.01
Помогите! Очень срочно! как отловить все, что пользователь вводит


1-524
ZATISHYA
2003-04-19 02:03
2003.05.01
ПОМОГИТЕ!!! Как сделать перекодировщик символов по таблице???????


3-411
Солер
2003-04-10 16:05
2003.05.01
ADO замучил - ночи не сплю