Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

Рисуем в Memo. Затруднительный вопрос.   Найти похожие ветки 

 
Гость-342   (2004-01-28 14:51) [0]

Задавал его уже несколько раз, отозвался только один человек, в связи с чем пока в голову пришло только одно решение, которое меня не устраивает.

Итак, нужно чтобы memo с n-ной позиции курсора было зеленым (синим, красным ...). Т.е. memo разбито на два прямоугольника, один из которых (левый) имеет цвет memo1.color, а второй - зеленый (синий, красный ...).

Есть единственный пока вариант: по сообщению WM_CTLCOLOREDIT формировать bitmap с нужным нам бэкграундом для memo, и подсовывать memo в обработчике сообщения кисть типа PATTERN с этим битмапом. Это несколько ресурсонакладно и, ИМХО, должно быть более рациональное решение.


 
real_dimedrol   (2004-01-28 15:50) [1]

Похоже, вопрос довольно затруднительный. Хотелось бы услышать хотя бы рассуждения на эту тему.


 
panov ©   (2004-01-28 16:13) [2]

Обсуждалось уже не раз.
Пользуйтесь TRichEdit.


 
Unax ©   (2004-01-28 23:23) [3]

TControlCanvas


 
Германн ©   (2004-01-28 23:53) [4]

И вообще. Почему все так стремятся раскрасить именно Memo? Неужели потому только, что он лежит на первой закладке, а RichEdit только лишь на третьей? Или может я что-то не знаю об иных преимуществах Memo?


 
real_dimedrol   (2004-01-29 12:01) [5]

Наверное потому, что memo первичнее, чем Richedit. Каждый сам для себя выбирает, писать что-то руками или взять чужое готовое. Разница выходит лишь в том, что одни теряют время, а другие знания и опыт. Все просто.


 
real_dimedrol   (2004-01-29 12:04) [6]

И вообще, кто кроме меня стремился раскрасить memo? Я перебрал всю королевскую конференцию - никто.


 
Serge ©   (2004-01-29 12:38) [7]

Посмотри исходники synedit-а, может чем-то поможет

http://synedit.sourceforge.net/


 
real_dimedrol   (2004-01-29 14:30) [8]

Спасибо. Гляну.


 
real_dimedrol   (2004-01-29 21:11) [9]

2 Panov,Германн
Товарисчи видимо меня не так поняли. Я не хочу сделать у текста начиная с n-й позиции фон, я хочу чтобы этот фон там был независимо от текста. Просто всегда был...


 
real_dimedrol   (2004-01-30 13:24) [10]

Блин. Похоже даже PatternBrush - не вариант. Она принимает только рисунки 8*8 или меньше... Что же делать? Суть всей этой белиберды в написании редактора для Бейсик-Кобол-Фортран-подобных программ, в которых операторы допускается вводить только с n-ной позиции. И чтобы не считать пробелы, я хотел просто подкрасить в memo ту область, которая для операторов. А также и ту, которая для меток, комментариев и т.п.
Люди, где ваши мозги? Напрягите их.


 
химик   (2004-01-30 19:01) [11]

рисуй на DC твоего мема
ср-вами API. координаты вычисляй.
вперед :)


 
real_dimedrol   (2004-01-31 00:24) [12]

2 химик
Это все хорошо и красиво. По какому сообщению рисовать????


 
Германн ©   (2004-01-31 03:15) [13]

2 real_dimedrol (31.01.04 00:24) [12]
Ты, наверно, имел в в виду "по какому событию рисовать"?
Так у мемо нет таких. А вообще-то сообщение - известно какое - WM_PAINT.


 
Maxud ©   (2004-01-31 14:58) [14]

Вот здесь по рисованию на Мемо:
http://www.delphiworld.narod.ru/base/memo_with_own_fonts.html


 
real_dimedrol   (2004-02-02 11:50) [15]

Удалено модератором
Примечание: Следи за выражениями...


 
pasha_golub ©   (2004-02-02 11:52) [16]

real_dimedrol (02.02.04 11:50) [15]
Потому шо Мемо не предназначен для этого, скоко раз уже сказали. Используй РичЭдит, ну шо за упрямство. :-)


 
real_dimedrol   (2004-02-02 11:55) [17]

Ну скажи вот тогда мне, как в RichEdit сделать половину зеленой а вторую половину - красной? Не фон у текста, а просто всегда половина зеленая, половина красная... По моему это то же самое будет.


 
real_dimedrol   (2004-02-02 11:57) [18]

Удалено модератором
Примечание: Следи за выражениями...


 
Плохиш   (2004-02-02 11:58) [19]

>real_dimedrol (30.01.04 13:24) [10]

Люди, где ваши мозги? Напрягите их.

Наши-то при нас. Не понимаю, почему все так хотят их напрячь каким-то идиотским занятием? :-(


 
VAleksey ©   (2004-02-02 11:59) [20]

Возьми 2-а мемо.


 
pasha_golub ©   (2004-02-02 12:30) [21]

VAleksey © (02.02.04 11:59) [20]
Тоже верно.


 
real_dimedrol   (2004-02-02 14:46) [22]

Не системно мыслите, тавагищи, а если мне надо десять прямоугольников??? Да еще не ровно по строкам, а алигнутых абы как?


 
Noname   (2004-02-02 14:50) [23]

Удалено модератором
Примечание: Оффтоп...


 
VAleksey ©   (2004-02-02 15:11) [24]


> а если мне надо десять прямоугольников???

Возьми десять.
Или создавай "на лету" по своим правилам.

> Да еще не ровно по строкам, а алигнутых абы как?

"Загнутых" прямоугольников не бывает... На то они и прямоугольники.


 
Rouse_ ©   (2004-02-02 15:22) [25]

> "Загнутых" прямоугольников не бывает
Он имел ввиду Alignment ;))
Хотя с этим тоже не должно проблем возникнуть, у Мемо есть Align...


 
VAleksey ©   (2004-02-02 15:35) [26]


> Rouse_ © (02.02.04 15:22) [25]

Угу ошибся. :-))
Тогда зачем их "алайгнить" абы-как? Надо по правилам, или самому исходя из пропорции размеры устанавливать.


 
panov ©   (2004-02-02 19:01) [27]

>real_dimedrol (02.02.04 14:46) [22]

Это ты не системно мыслишь.

Если мыслить системно и проникновенно, то зачем использовать VCL? Поступи просто, как тебе уже советовали, - рисуй все сам.


 
real_dimedrol   (2004-02-03 11:40) [28]

2 panov
Вот. С самого начала (не понял тока, за что админ выкосил мои изъяснения) я и хотел понять, можно ли как-нибудь использовать memo для моих целей либо же все надо с нуля... Одно только есть "но". Совсем с нуля не получится. Мне ведь нужен не статический компонент, а edit-control. Для этого в windows есть только один вариант: многострочный edit-control. Он же в VCL memo...


 
Игорь Шевченко ©   (2004-02-03 12:10) [29]

real_dimedrol (03.02.04 11:40)

memo раскрашивать можно, но не стоит....уж очень овчинка выделки не стоит. Могу показать направление, куда двигаться - в сторону обработки сообщений WM_CTLCOLOREDIT, WM_ERASEBKGND и WM_PAINT, но сразу предупреждаю, дело очень непростое


 
real_dimedrol   (2004-02-04 15:29) [30]

Игорь Шевченко
Это я уже понял. Поскоку много кто мне уже подал наводки типа "просто рисуй сам что хочешь", "используй wm_paint", "используй richedit", посмотри статью ... Это все советы не от тех, кто сам реально пробовал красить memo... Я уже поломал все копья, просматривая нерабочие листинги и глючные компоненты. И MSDN читал и естественно wm_ctlcoloredit и wm_erasebackground и wm_paint ловил. Одна проблема, если даже вообще отключить обработку wm_paint, memo отображает буквы! То есть он что-то рисует... Но как? Я же отключил его! Как его вырубить намертво, оставив лишь мигающий курсор, который, кстати, при отключении wm_paint исчезает?


 
Yanis ©   (2004-02-09 23:41) [31]

А TControlCanvas? Чем не вариант?



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
1-79894
Vag
2004-02-13 22:10
2004.02.25
Не закрывабшася программа?


3-79656
Fom
2004-01-30 13:20
2004.02.25
План выполнения ХП


3-79634
deadbitch
2004-01-31 19:13
2004.02.25
Возврат набора данных из stored proc


14-80193
Штурмовик
2004-01-30 23:20
2004.02.25
Помогите студенту


1-79945
Talla2k
2004-02-08 20:24
2004.02.25
Scroll в StringGrid . ~по моему событию~