Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как программно выделить текст в TextBox-е?
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Вы лучебы написали хотябы примерно как это сделать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2010, 11:12 |
|
||
|
Как программно выделить текст в TextBox-е?
|
|||
|---|---|---|---|
|
#18+
> Автор: valdemar_ru > Игорь Горбонос, Вы лучебы написали хотябы примерно как это сделать :) Начну с теории Все что делается в операционной системе виндовс делается через механизм сообщений, для этого у каждого окона(в том числе и оконного контрола) есть функция приема и обработки этих самых сообщений. Так вот термин subclass обозначает подмену стандартной функции обработки сообщений, на пользовательскую для придания каких-то спецефичиских особенностей, которые невозможно получить стандартными способами. Теперь практика: Для реализации сабклассинга нам понадобится стандартный модуль со следующим содержанием: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. Например нам необходимо подменять ввод символа "точка"(.) на "запятую"(,) с клавиатуры с TextBox. Для этого нам необходимо обратится к документации (MSDN) и там выяснить, что сообщение которое передает в контрол TextBox вводимые символы называется WM_CHAR. В wParam - передается собственно код вводимого символа(его и будем анализировать), а в lParam - передается дополнительная информация о состоянии клавишь спец-назначения(Ctrl, Alt etc)(в данном примере она нас не интересует). Все сообщения - это константы. Их нужно просто найти :). Найти можно в любом PlatformSDK для виндовс. Так-же эти и многие други объявления можно найти в APIView от книги Эпплмана VB porgamming Guide to the Win32 API или с VB6 поставлялась утилита API Viewer. Таким образом модуль сабклассинга будет выглядеть так: Модуль сабклассинга Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. Добавляем этот модуль к проекту, добавляем на форму TextBox и в форме прописываем следующий код: Модуль формы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Запустив, легко убедится, что ввести точку с клавиатуры никак не получится. Это самый простой вариант, так сказать азы. Но! Нужно очень внимательно продумывать сабклассинг, потому что малейшая ошибка будет приводить к падению как программы, так и среды разработки. З.Ы. Тебе осталось выяснить какими сообщениями делается выделение в текстбоксе и заблокировать их. Дерзай Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2010, 12:06 |
|
||
|
Как программно выделить текст в TextBox-е?
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос , Поэтому и указал простой вариант. При использовании сабклассинга, необходимость в таймере полностью отсутсвует. Но и пользоваться им нужно аккуратней, проект вылетает на ура :) Да и кода поболее будет. Если автор немного покапается думаю и его прикрутит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2010, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2159641]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 373ms |

| 0 / 0 |
