Форум: "Основная";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
ВнизВыделение части текста в TEdit Найти похожие ветки
← →
Прохожий 001 (2008-03-18 09:01) [0]Мне нужно выделить несколько символов в Edit и передать ему управление, чтобы можно было эти выделенные символы чем-то заменить (т.е. в Edit написано например 443000, надо выделить 000, чтобы пользователь смог заменить эти три цифры своими, не переписывая первые три). Какой командой/сообщением воспользоваться, чтобы отловить это событие?
← →
Сергей М. © (2008-03-18 09:08) [1]см. SelStart, SelLength.
← →
Прохожий 001 (2008-03-18 09:09) [2]Это-то я уже сообразил. Но потом если передаешь Edit"у фокус, выделяется все равно весь текст. Где-то я уже видел подобное, да найти не могу...
← →
Сергей М. © (2008-03-18 09:11) [3]
> потом если передаешь Edit"у фокус
Так ты сначала фокус передай, и уж только потом устанавливай выделение текста сфокусированного контрола)
← →
Сергей М. © (2008-03-18 09:14) [4]
> Где-то я уже видел подобное, да найти не могу
Дык в справке по SelStart, наверно, и видел)
← →
Прохожий 001 (2008-03-18 10:29) [5]Ага, пасиб
А ещё такой вопрос: у меня есть файл с названиями улиц, как мне сделать автоподстановку из этого файла например для ввода: "Советс[кой армии, ул.]" и чтобы при нажатии Enter эта строчка применялась для текущего edit?
← →
Сергей М. © (2008-03-18 10:36) [6]Большой файл-то ?
← →
Прохожий 001 (2008-03-18 11:06) [7]36,7Мб
скорость не критична.
← →
Сергей М. © (2008-03-18 11:18) [8]Принципиально ли держать эту инф-цию именно в обычном текстовом файле ?
Или не исключается вариант переноса инф-ции в полноценную базу данных ?
← →
Прохожий 001 (2008-03-18 11:23) [9]Вариант не исключается, интересует метод реализации "автодополнения".
← →
Сергей М. © (2008-03-18 11:29) [10]
> метод реализации "автодополнения".
Он сводится к эффективному поиску строки, начинающейся с уже введенного юзером фрагмента. Это ключевой момент в решении задачи. В случае использования СУБД решение многократно упрощается.
← →
Прохожий 001 (2008-03-18 12:31) [11]Да нет же!
Я знаю, как искать и в строке, и в базе. Меня интересует сама метода - как сделать так, чтобы при вводе Стро пользователю предлагалось Стро[ка], Стро[йка] и тд...
← →
Сергей М. © (2008-03-18 12:42) [12]ну что-то вроде этого:
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:59) [13]Почти получилось. Только если юзер решит удалить "выделенную" часть, то она удаляется, а потом заново восстанавливается...
← →
Сергей М. © (2008-03-18 13:01) [14]А это уж ты сам разруливай, при каких действиях юзера использовать эту логику, а при каких не использовать.
← →
Прохожий 001 (2008-03-18 13:12) [15]Я попытался повесить это на событие OnChange - тогда восстанавливается после удаления. Повесил на OnKeyPress - вообще выводит только после нажатия лишней кнопки :(
← →
Johnmen © (2008-03-18 14:29) [16]Тут два пути:
1. Продолжать вешать "это" на: OnKeyDown, OnClick, OnDblClick, OnDragOver и т.д.
2. Начать думать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c