Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1205820119
Прохожий 001
2008-03-18 09:01
2009.01.11
Выделение части текста в TEdit


2-1227964423
Евгений
2008-11-29 16:13
2009.01.11
Доступ к таблице Access через ListView


15-1226137710
DillerXX
2008-11-08 12:48
2009.01.11
Поговорим о катающихся железных шариках?


2-1227719125
programmer90
2008-11-26 20:05
2009.01.11
Функции распознавание цвета и координат пикселя


15-1226462765
Slider007
2008-11-12 07:06
2009.01.11
С днем рождения ! 12 ноября 2008 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский