|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||
Как организовать автовыделение содержимого TEdit при получении фокуса от мыши?08.11.2018, 11:37. Показов 1981. Ответов 31
Метки нет (Все метки)
Всем здравствуйте.
При попадании фокуса в TEdit от клавиши <TAB> и установленном свойстве AutoSelect происходит автовыделение содержимого окна TEdit. Задача: добиться того же самого при попадании фокуса в TEdit от мыши. Когда-то во времена VB-6 это делалось в две строчки:
Чтобы извернуться и решить задачу на форуме VBNet мне предложили пользоваться таймером:
Ещё один момент: Если содержимое окна полностью выделено и оно уже имеет фокус то клик по выделению должен это выделение снять. На всякий случай в архиве exe-шник на VB-6 для демонстрации как всё должно происходить. Добавлено через 4 минуты архив не прикрепляется, вот ссылка на него на облаке https://yadi.sk/d/JlThdT7FeZ236w
0
|
|||||||||||
| 08.11.2018, 11:37 | |
|
Ответы с готовыми решениями:
31
Событие текстбокса - при получении фокуса |
|
Супер-модератор
|
|||||||
| 08.11.2018, 11:50 | |||||||
Сообщение было отмечено jkrnd как решение
Решение
1
|
|||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 08.11.2018, 14:38 [ТС] | ||||||
|
volvo, супер. То что хотел. Осталось завести новое свойство Selectable и в зависимости от него переопределять DoEnter. Спасибо.
![]() Добавлено через 25 минут Пришлось перенести код с переопределением в Public секцию. Тогда заработало:
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 08.11.2018, 18:41 [ТС] | ||||||
|
Теперь пробую сделать так, чтобы при получении фокуса содержимое не только выделялось, но и выравнивалось по левому краю, а при потере фокуса опять выравнивалось по правому краю. Не получается состыковать с Вашим кодом
Выравнивание текста в TEdit вставляю:
Добавлено через 3 часа 41 минуту volvo, так и не получается совместить автовыделение содержимого по получению фокуса от мыши и выравнивания содержимого по левому краю а при потере фокуса - по правому краю.
0
|
||||||
|
Супер-модератор
|
|||||||||||
| 08.11.2018, 18:55 | |||||||||||
|
В этом случае нужно хитрее действовать, с RecreateWnd тут не прокатит, нужно на уровень WinAPI спускаться. Сделал так:
1
|
|||||||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||||||||||||
| 08.11.2018, 20:02 [ТС] | ||||||||||||||||
|
volvo, Всё работает как задумано. Но теперь если в форме имею Edit1 с Alignment = taLeftJustify и я повешу на кнопку
Добавлено через 4 минуты в конструкторе перехватчика пишу
Фокус при загрузке падает не на окно редактирования - я проверил.
0
|
||||||||||||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 08.11.2018, 21:14 [ТС] | |
|
volvo, вот проект, там три кнопки они перестали переключать выравнивание. Да и при первом запуске все TEdit с левым выравниванием. Не пойму, что не так.
0
|
|
|
Супер-модератор
|
||||||
| 08.11.2018, 21:54 | ||||||
|
Как при запуске сделать выставленное выравнивание - еще не придумал, а вот если добавить
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 08.11.2018, 22:57 [ТС] | |
|
изменённый в SetAlignment код результатов не дал. Выравнивание работает только в теле кода класса-перехватчика.
0
|
|
|
Супер-модератор
|
|||||||
| 08.11.2018, 23:43 | |||||||
|
Добавлено через 16 минут А если перенести вот эти действия:
1
|
|||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 09.11.2018, 06:00 [ТС] | |
|
volvo, видео не нужно, но если не трудно пришлите Ваш работающий проект.
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 09.11.2018, 11:52 [ТС] | |
|
volvo, попробовал на работе (WinXP, BCB6) - даже exeшник: по нажатию Button2 текст в центр не сместился, по нажатию Button3 текст вправо не сместился, чудеса какие-то. Проект - то же самое поведение. Что бы это могло быть?
Зато заработало в проекте, принесённом из дома. Сейчас разберусь.
0
|
|
|
Супер-модератор
|
|
| 09.11.2018, 11:53 | |
|
Не знаю. Что-то в системе. Какая ОС, кстати. Я слышал, что с выравниванием на WinXP до SP3 бывали проблемы. На Десятке тоже можно нарваться на непредсказуемые глюки (там вообще на любые глюки можно нарваться). Но я проверил на WinXP SP3/Win7 32/Win7 64/Win8 32, везде все работает. Остальные ОСи мне ни к чему, так что не держу их в виртуалке.
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||
| 09.11.2018, 12:00 [ТС] | |||||||||||
|
нашёл отличие между проектом из дома и тем что скачал у Вас:
у Вас
у меня
0
|
|||||||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||||||||||||
| 12.11.2018, 12:09 [ТС] | ||||||||||||||||
|
volvo, всё работает как Вы говорили. Я перепутал модули разных проектов и у меня получилось что-то вроде каши. Начал всё заново и всё заработало. Возник новый вопрос. Вот исправно работающий код:
0
|
||||||||||||||||
|
Супер-модератор
|
||||||
| 12.11.2018, 12:26 | ||||||
|
Комментировать надо полностью, а ты оставил заголовок. Как только его закомментируешь - проблема уйдет.
Кстати, чтобы сделать метод Change публичным, достаточно написать:
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||
| 12.11.2018, 13:01 [ТС] | |||||||
0
|
|||||||
| 12.11.2018, 13:01 | |
|
Помогаю со студенческими работами здесь
20
Запретить прокручивать скролл при получении фокуса (android) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|