Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Рисуем в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.037 c
14-80285
Кот Бегемот
2004-02-03 09:15
2004.02.25
Корпорация Microsoft - год основания - 1975


6-80082
DJ_DAN
2003-12-21 04:19
2004.02.25
Создание пакетов Ethernet....


14-80273
BlackLord2003
2004-02-04 09:12
2004.02.25
MyDoom


7-80339
Zem!r
2003-12-08 07:31
2004.02.25
Замена shell а


1-79789
DimonNew
2004-02-11 17:06
2004.02.25
ProgressBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский