![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделение части текста в TEdit [WinXP]
Прохожий 001 © (2008-03-18 09:01:00)Мне нужно выделить несколько символов в Edit и передать ему управление, чтобы можно было эти выделенные символы чем-то заменить (т.е. в Edit написано например 443000, надо выделить 000, чтобы пользователь смог заменить эти три цифры своими, не переписывая первые три). Какой командой/сообщением воспользоваться, чтобы отловить это событие?
Johnmen (2008-03-18 14:29:00) [1]Тут два пути:
1. Продолжать вешать "это" на: OnKeyDown, OnClick, OnDblClick, OnDragOver и т.д.
2. Начать думать.
Прохожий 001 (2008-03-18 13:12:00) [2]Я попытался повесить это на событие OnChange - тогда восстанавливается после удаления. Повесил на OnKeyPress - вообще выводит только после нажатия лишней кнопки :(
Сергей М. (2008-03-18 13:01:00) [3]А это уж ты сам разруливай, при каких действиях юзера использовать эту логику, а при каких не использовать.
Прохожий 001 (2008-03-18 12:59:00) [4]Почти получилось. Только если юзер решит удалить "выделенную" часть, то она удаляется, а потом заново восстанавливается...
Сергей М. (2008-03-18 12:42:00) [5]ну что-то вроде этого:
Pattern := 'Стро';
plen := Length(Pattern);
Found := SearchStringLike(Pattern);
len := Length(Found) - plen;
if len > 0 then begin
Edit.Text := Found;
Edit.SelStart := plen;
Edit.SelLength := len;
end;
Прохожий 001 (2008-03-18 12:31:00) [6]Да нет же!
Я знаю, как искать и в строке, и в базе. Меня интересует сама метода - как сделать так, чтобы при вводе Стро пользователю предлагалось Стро[ка], Стро[йка] и тд...
Сергей М. (2008-03-18 11:29:00) [7]
> метод реализации "автодополнения".
Он сводится к эффективному поиску строки, начинающейся с уже введенного юзером фрагмента. Это ключевоймомент в решении задачи. В случае использования СУБД решение многократно упрощается.
Прохожий 001 (2008-03-18 11:23:00) [8]Вариант не исключается, интересует метод реализации "автодополнения".
Сергей М. (2008-03-18 11:18:00) [9]Принципиально ли держать эту инф-цию именно в обычном текстовом файле ?
Или не исключается вариант переноса инф-ции в полноценную базу данных ?
Прохожий 001 (2008-03-18 11:06:00) [10]36,7Мб
скорость не критична.
Сергей М. (2008-03-18 10:36:00) [11]Большой файл-то ?
Прохожий 001 (2008-03-18 10:29:00) [12]Ага, пасиб
А ещё такой вопрос: у меня есть файл с названиями улиц, как мне сделать автоподстановку из этого файла например для ввода: "Советс[кой армии, ул.]" и чтобы при нажатии Enter эта строчка применялась для текущего edit?
Сергей М. (2008-03-18 09:14:00) [13]
> Где-то я уже видел подобное, да найти не могу
Дык в справке по SelStart, наверно, и видел)
Сергей М. (2008-03-18 09:11:00) [14]
> потом если передаешь Edit'у фокус
Так ты сначала фокус передай, и уж только потом устанавливай выделение текста сфокусированного контрола)
Прохожий 001 (2008-03-18 09:09:00) [15]Это-то я уже сообразил. Но потом если передаешь Edit'у фокус, выделяется все равно весь текст. Где-то я уже видел подобное, да найти не могу...
Сергей М. (2008-03-18 09:08:00) [16]см. SelStart, SelLength.