![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прозрачный ТМемо
guav © (2006-09-09 15:23:00)Как сделать TMemo у которого прорисовывается только текст ?
И не говорите что никак, в пеинте используется прозрачный multiline edit для рисования текста.
guav (2006-09-10 23:45:00) [1]> [21] y-soft © (10.09.06 16:58)
спасибо.
y-soft (2006-09-10 16:58:00) [2]>guav © (09.09.06 15:23)
http://www.torry.ru/vcl/edits/enh/trancomp.zip
guav (2006-09-09 19:37:00) [3]> а код мне делать лень. сильно лень.
Ну если лень, то наверняка в проблему тоже вникнуть было лень, потому тебе и кажется что [14] должно работать.
Ketmar (2006-09-09 19:20:00) [4]ну так там про "easy way" спрашивали. %-)
а код мне делать лень. сильно лень.
guav (2006-09-09 19:07:00) [5]Я не сохранил свои попытки, но я перекрывал WM_ERASBCKGND (его делал пустым) и WM_PAINT (там пробовал разные вариант в т.ч. SetBkMode(Message.DC, TRANSPARENT)), результат отрицательный.
и ещё, поиск в группах нашёл кучу сообщений вроде этого http://groups.google.com.ua/group/borland.public.delphi.vcl.components.using.win32/browse_frm/thread/441e44618225b39e/8110b85d9bb4480a?tvc=1&q=transparent+tmemo&hl=ru#8110b85d9bb4480aи другую кучу поменьше с вариантами которые я уже пробовал. Видимо задача не трифвиальна
guav (2006-09-09 18:57:00) [6]> значит, плохо пробуешь.
наверное.
пожалуйста, приведи код, как я могу хорошо попробовать.
Ketmar (2006-09-09 17:06:00) [7]значит, плохо пробуешь.
guav (2006-09-09 16:55:00) [8]> [14] Ketmar © (09.09.06 16:50)
нет
Ketmar (2006-09-09 16:50:00) [9]тьфу, блин. SetBkMode(TRANSPARENT), конечно же.
Ketmar (2006-09-09 16:50:00) [10]> [12] guav © (09.09.06 16:47)
SetBkMode(OPAQUE) не работает?
guav (2006-09-09 16:47:00) [11]> [11] Ketmar © (09.09.06 16:28)
> рисуем фон, остальное отдаём стандартной рисовалке. не забываем
> указать стандартной, что фон надо малевать прозрачной кистью.
Не получается, [6].
Если знаешь как "указать стандартной, что фон надо малевать прозрачной кистью", включая фон текста, опиши подробнее или покажи код.
Ketmar (2006-09-09 16:28:00) [12]куда уж проще? рисуем фон, остальное отдаём стандартной рисовалке. не забываем указать стандартной, что фон надо малевать прозрачной кистью.
guav (2006-09-09 16:04:00) [13]> перехватить рисовалку и рисовать.
т.е. рисовать всё включая буквы ? да, это можно.
мне в этом варианте не нравится то, что потребуется точно рисовать буквы там где были бы старые, иначе курсор не будет отображатся там где надо.
можно конечно самому ставить курсор, но это усложняет задачу. Можно вообще свой Memo реализовать. Но хотелось бы найти самый лёгкий путь.
[9] - пока основной вариант, но хочу что-нить попроще
Ketmar (2006-09-09 15:54:00) [14]перехватить рисовалку и рисовать.
guav (2006-09-09 15:54:00) [15]Регулируемая прозрачность не требуется, требуется только вкл/выкл.
Помещение фона в Мемо мне подойдёт (во время редактирования фон не меняется), но как это сделать ?
SerJaNT (2006-09-09 15:47:00) [16]Можно попробовать так:
сначала сделать что-то типа скриншота размерам = TMemo, запомнить этот кусок, потом вспомнить и поместить в качестве фонового рисунка в TMemo. Естесно, tmemo должен перекрывать ту область которую ты скопировал. Тогда и будет эффект прозрачности. А если сделать регулировку яркости, то можно добиться регулируемой прозрачности
guav (2006-09-09 15:42:00) [17]Удалено модератором
Примечание: дубль
guav (2006-09-09 15:42:00) [18]> Окно прозрачным делать умеешь? TMemo - тоже окно ;)
Пробовал, но получается чтобуквы имеют background, хотя от бэкграунда там, где нет текста так избавится можно.
Орион (2006-09-09 15:39:00) [19]> [0] guav © (09.09.06 15:23)
Окно прозрачным делать умеешь? TMemo - тоже окно ;)
guav (2006-09-09 15:39:00) [20]> запустить паинт?
гы.
если имеется ввиду запускать пеинт когда потребуется подобная функциональность то не подойдёт, т.к. функциональности пеинта и встроенного в него прозрачного мемо недостаточно.
если запустить чтобы поковырять всяческими Spy++ и отладчиками - то надеюсь что обойдусь.
> А ты уверен что там используется TMemo?
Уверен что нет. Там вообще VCL нет.
Там класс окна EDIT. Т.е. обычный multiline edit, но subclassing думаю сделан.
TMemo - обёртка вокруг multiline edit.
Вообще-то если понадобится, это окошко можно и на "чистом API" сделать, вопрос только как.