Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизУстановить курсор перед выделенным текстом Найти похожие ветки
← →
Анатолий (2004-10-20 13:45) [0]Сообщением EM_SETSEL можно выделить регион и установить курсор в конец этого региона.
Из MSDN : "The caret is placed at the end of the selection indicated by the greater of the two values nEnd and nStart".
Как это обойти? Мне нужен курсор в начале выделенного региона, так чтобы стедующий символ, введенный с клавиатуры, автоматически заместил выделенные символы.
Кто-нибудь делал? Спасибо заранее.
← →
KSergey © (2004-10-20 13:48) [1]> Мне нужен курсор в начале выделенного региона, так чтобы
> стедующий символ, введенный с клавиатуры, автоматически
> заместил выделенные символы.
Это и так произойдет вне зависимости где стоит курсор
← →
KSergey © (2004-10-20 13:49) [2]См. так же http://delphimaster.net/view/4-1096610271/ и смежные к упомянутой в посл. посте ф-ции
← →
Анатолий (2004-10-20 14:07) [3]
> KSergey © (1)
Ну да. Только для пользователя должно выглядеть так: он набирает, скажем, имя, а ему автоматически подставляются имена, которые начинаются на символы, которые пользователь уже набрал, но та часть имени, которую подставила программа, должна быть выделена, и соотв. при наборе следующего символа исчезнет. Поэтому курсор не может прыгать в конец строки после каждой буквы.
> KSergey © (2)
Спасибо. Пробую заюзать SetCaretPos (Пока не выходит :) )
← →
Анатолий (2004-10-20 14:15) [4]
> KSergey ©
Итак, GetCaretPos, SetCaretPos идеально все решило. Спасибо за быстрый ответ.
← →
KSergey © (2004-10-20 14:50) [5]> [3] Анатолий (20.10.04 14:07)
> Поэтому курсор не может прыгать в конец строки
> после каждой буквы.
Почему? По-моему, вполне нормальное поведение, меня оно как-то не задевало, хотя... ;)
Есил интересно - есть готовый ComboBox с "дописыванием". Есть так же в библиотеке InfoPower, DB-ориентированный
← →
Анатолий (2004-10-20 15:16) [6]
> KSergey ©
> Почему? По-моему, вполне нормальное поведение, меня оно как-то не задевало, хотя... ;)
Да меня тоже.. Но рук-ство где-то увидело, сказало сделать. Кстати, попробую переубедить.
> Есил интересно - есть готовый ComboBox с "дописыванием".
> Есть так же в библиотеке InfoPower, DB-ориентированный
Все это должно быть сделано на основе Edit"а. В проекте не поменяешь. Там разработаны свои DB-компоненты на его основе. Могу только дописать функциональность :).
Спасибо.
← →
KSergey © (2004-10-20 15:42) [7]> [6] Анатолий (20.10.04 15:16)
> > Есил интересно - есть готовый ComboBox с "дописыванием".
> Все это должно быть сделано на основе Edit"а.
Да в принципе - один фиг. Там отличия только будут откуда варианты брать.
Если будет не жаль - было бы интересно глянуть на реализацию, напишите на мыло в анкете. Могу (если интересно) поделиться своей.
> Да меня тоже.. Но рук-ство где-то увидело, сказало сделать.
> Кстати, попробую переубедить.
Вообще во всех этих "фишках" для меня авторитеты - MS Word и MS Access (в последнем дописывание есть штатно). Хотя куда курсор встает там - не помню... По-моему - как раз в начало выделенного фрагмена, помнится у себя я это пока оставил, на доделки ;)
← →
Анатолий (2004-10-20 15:59) [8]
> [7] KSergey ©
> Если будет не жаль - было бы интересно глянуть на реализацию,
> напишите на мыло в анкете. Могу (если интересно) поделиться
> своей.
О чем речь, скину. Когда все сделаю. Основная трудность то не в выделении текста :). Надо сделать быстрый поиск вариантов в базе в трехзвенной системе.. Попробую выбрать самое существенное.
← →
KSergey © (2004-10-20 16:13) [9]Основной трудностью для меня было не дать вставить из клипборда то, чего нет в списке ;) Подсмотрел частично реализацию в EhLib (DBGridEh). Оказывается, уложилось в несколько строк.
← →
Анатолий (2004-10-20 17:08) [10]
> KSergey ©
> Основной трудностью для меня было не дать вставить из клипборда то, чего нет в списке
Мдя.. Только-что закончили гарячую дискуссию по поводу ввода несуществующего в споске значения. Решили позволить вводить что угодно, даже из клипборда. Но при потере едитом фокуса предупреждать и предлагать: отменить ввод, добавить новое значение в базу, открыть список существующих значений. Т.е. проблема с клипбордом отменяется :).
← →
KSergey © (2004-10-20 17:17) [11]Не всегда этот фокус теряется, зараза... Типа Enter при имеющейся дефолтной кнопке - и привет.. И нету потери фокуса....
По-моему, лучше уж и вовсе не дать вставить ерунду, если уж по задаче это недопустимо....
← →
KSergey © (2004-10-20 17:18) [12]Можно конечно и на закрытие формы тот же код прикрутить - но хорошо ли это? Особенно, есил в виде компонента решаем задачу?
← →
Анатолий (2004-10-20 17:45) [13]Не, компонент так компонент, с формой нельзя.
А если запретить ввод несуществующих - представь себе ситуацию: телефонистка быстренько набивает заказы, вводит фамилию, встретилась новая фамилия - она ее не сможет набрать. А так она получит запрос: очистить поле, или добавить в справочник физ.лиц, к примеру.
А насчет потери фокуса ты прав.. Надо помозговать. Неужто не найдется какое-нибудь подходящее сообщение? Я ушел в исходники..:)
← →
KSergey © (2004-10-20 22:47) [14]> Анатолий (20.10.04 17:45) [13]
> А так она получит запрос: очистить поле, или добавить в справочник
> физ.лиц, к примеру.
Я же везде добавлял "если уж по задаче это недопустимо...." ;)
> Я ушел в исходники..:)
Если что подвернется - буду признателен за сообщение.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c