| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Курсор в поле мемо |
| Автор: OutlawZ 23.11.2008, 22:01 |
| Привет народ, вот такая вот проблемка, как можно увеличить ширину курсора в поле Memo? и сделать его другим цветом? помоги те пожалуйста или скажите какая API функция отвечает за это |
| Автор: artsb 23.11.2008, 22:12 |
| Я так предполагаю, что нужно заранее нарисовать нужный курсор и в нужный момент просто подставить его. Добавлено через 8 минут и 22 секунды Извиняюсь, что в общих чертах. Просто давно за Билдером не сидел и конкретного ничего (пока) сказать не могу. |
| Автор: OutlawZ 24.11.2008, 20:09 |
| Это не есть true |
| Автор: OutlawZ 25.11.2008, 15:35 |
| Народ ну помогите пожалуйста |
| Автор: taiven 25.11.2008, 16:07 |
| Что подразумевается под курсором: курсор мыши или каретка(мигающий курсор в поле Memo)? |
| Автор: OutlawZ 25.11.2008, 16:09 |
| мигающий курсор в поле Memo да я про него! |
| Автор: KTatsu 25.11.2008, 17:33 |
| Мне известно лишь, что толщина его в самой винде настраивается и действует во всех приложениях. А что конкретно тебе требуется сделать? Может есть другой выход? |
| Автор: OutlawZ 25.11.2008, 19:36 |
| Есть такая программа как Putty в ней зеленая и широкая каретка, в не зависимости настройки винды. Просто мне что нужно: 1) Увеличить ширину! 2) Сменить цвет! Пробовал пойти по пути прогресс бара с помощью апи функций я менял ему цвет, а вот не как не могу сменить апи функции для каретки. Если тут надо задействовать реестр то подскажите как это реализовать! |
| Автор: THandle 25.11.2008, 21:26 |
| OutlawZ, изучай то что тут написано: http://msdn.microsoft.com/en-us/library/ms646968(VS.85).aspx По идее можно создать каретку в виде рисунка |
| Автор: OutlawZ 25.11.2008, 21:34 |
| спасибо ) |
| Автор: artsb 25.11.2008, 22:05 |
Дык я про это и говорил. Могу дать пример. |
| Автор: OutlawZ 25.11.2008, 23:31 | ||||
| Если можно пример то буду рад, хотя уже сам понял как замутить ) но все таки посмотреть не откажусь! ) У меня тут еще вопрос по поводу создание каретки, вот структура как показано в примере msdn
Поскольку я программирую в билдере то код скорей должен принять у меня такой вид? :
Если код правильный "просто я щас не рядом с своим компом" то в какое событие его пихать? OnCreate? |
| Автор: THandle 25.11.2008, 23:34 |
Вообще-то это функция... Добавлено через 1 минуту и 23 секунды Описанная в winuser.h |
| Автор: OutlawZ 25.11.2008, 23:37 | ||
функция или структура мне без разници похожи они |
| Автор: taiven 26.11.2008, 00:33 | ||||
| Вроде получилось, привожу содержание Unit1.cpp и Unit1.h Unit1.h
Unit1.cpp
|
| Автор: artsb 26.11.2008, 12:15 |
| OutlawZ, посмотрел Ваш пример. Я приблизительно такой хотел дать Вот другой пример. Если я правильно понял, то это то, что Вам нужно. Единственно пока не придумал, как сделать чтобы каретка менялась при переходе в поле по TAB. Пока работает только при клике мыши. |
| Автор: taiven 26.11.2008, 13:47 | ||
надо просто WM_SETFOCUS отловить. Ты мой пример пробовал? |
| Автор: OutlawZ 26.11.2008, 19:01 |
| Спасибо всем за участие в решение этой задачки |
| Автор: artsb 26.11.2008, 19:02 |
Нет, попробую. Добавлено через 2 минуты и 7 секунд OutlawZ, так на чём вы остановились? |
| Автор: artsb 26.11.2008, 19:39 |
| Вот. Доделал. Может кому пригодится... |
| Автор: THandle 26.11.2008, 19:41 |
| Вообще примеров с изменением каретки предостаточно в http://drkb.ru/. Пусть и на Delphi - то же самое. Советую посмотреть статьи:
|
| Автор: OutlawZ 26.11.2008, 21:28 | ||||
Я просто совместил два примера в месте
И собственно код:
Все работает ![]() |
| Автор: artsb 26.11.2008, 21:37 |
| OutlawZ, а зачем мусор в ресурсы засовываете? Таку простую каретку легче нарисовать. Например так, как в моём примере. |
| Автор: OutlawZ 2.12.2008, 02:02 | ||||||
Согласен
И собвственно сам код:
И вот все работает так как надо ![]() |
| Автор: OutlawZ 2.12.2008, 02:25 |
| А можно еще сделать так что бы она не мигала? |
| Автор: THandle 2.12.2008, 08:15 | ||
OutlawZ, поставь огромное время не мигания каретки...
Только это подействует вообще на всю систему. Видимо это надо делать при получении фокуса твоим контролом с измененной кареткой, а при потере фокуса возвращать BlinkTime обратно |
| Автор: OutlawZ 2.12.2008, 21:16 |
| Спасибо |