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

Вниз

Прозрачный ТМемо   Найти похожие ветки 

 
guav ©   (2006-09-09 15:23) [0]

Как сделать TMemo у которого прорисовывается только текст ?
И не говорите что никак, в пеинте используется прозрачный multiline edit для рисования текста.


 
Ketmar ©   (2006-09-09 15:30) [1]

запустить паинт?


 
SerJaNT ©   (2006-09-09 15:30) [2]

А ты уверен что там используется TMemo?


 
guav ©   (2006-09-09 15:39) [3]

> запустить паинт?

гы.
если имеется ввиду запускать пеинт когда потребуется подобная функциональность то не подойдёт, т.к. функциональности пеинта и встроенного в него прозрачного мемо недостаточно.
если запустить чтобы поковырять всяческими Spy++ и отладчиками - то надеюсь что обойдусь.


> А ты уверен что там используется TMemo?

Уверен что нет. Там вообще VCL нет.
Там класс окна EDIT. Т.е. обычный multiline edit, но subclassing думаю сделан.
TMemo - обёртка вокруг multiline edit.
Вообще-то если понадобится, это окошко можно и на "чистом API" сделать, вопрос только как.


 
Орион ©   (2006-09-09 15:39) [4]

> [0] guav ©   (09.09.06 15:23)

Окно прозрачным делать умеешь? TMemo - тоже окно ;)


 
guav ©   (2006-09-09 15:42) [5]

> Окно прозрачным делать умеешь? TMemo - тоже окно ;)

Пробовал, но получается чтобуквы имеют background, хотя от бэкграунда там, где нет текста так избавится можно.


 
guav ©   (2006-09-09 15:42) [6]

Удалено модератором
Примечание: дубль


 
SerJaNT ©   (2006-09-09 15:47) [7]

Можно попробовать так:
сначала сделать что-то типа скриншота размерам = TMemo, запомнить этот кусок, потом вспомнить и поместить в качестве фонового рисунка в TMemo. Естесно, tmemo должен перекрывать ту область которую ты скопировал. Тогда и будет эффект прозрачности. А если сделать регулировку яркости, то можно добиться регулируемой прозрачности


 
guav ©   (2006-09-09 15:54) [8]

Регулируемая прозрачность не требуется, требуется только вкл/выкл.
Помещение фона в Мемо мне подойдёт (во время редактирования фон не меняется), но как это сделать ?


 
Ketmar ©   (2006-09-09 15:54) [9]

перехватить рисовалку и рисовать.


 
guav ©   (2006-09-09 16:04) [10]

> перехватить рисовалку и рисовать.

т.е. рисовать всё включая буквы ? да, это можно.
мне в этом варианте не нравится то, что потребуется точно рисовать буквы там где были бы старые, иначе курсор не будет отображатся там где надо.
можно конечно самому ставить курсор, но это усложняет задачу. Можно вообще свой Memo реализовать.  Но хотелось бы найти самый лёгкий путь.

[9] - пока основной вариант, но хочу что-нить попроще


 
Ketmar ©   (2006-09-09 16:28) [11]

куда уж проще? рисуем фон, остальное отдаём стандартной рисовалке. не забываем указать стандартной, что фон надо малевать прозрачной кистью.


 
guav ©   (2006-09-09 16:47) [12]

> [11] Ketmar ©   (09.09.06 16:28)



> рисуем фон, остальное отдаём стандартной рисовалке. не забываем
> указать стандартной, что фон надо малевать прозрачной кистью.

Не получается, [6].
Если знаешь как "указать стандартной, что фон надо малевать прозрачной кистью", включая фон текста, опиши подробнее или покажи код.


 
Ketmar ©   (2006-09-09 16:50) [13]

> [12] guav ©   (09.09.06 16:47)
SetBkMode(OPAQUE) не работает?


 
Ketmar ©   (2006-09-09 16:50) [14]

тьфу, блин. SetBkMode(TRANSPARENT), конечно же.


 
guav ©   (2006-09-09 16:55) [15]

> [14] Ketmar ©   (09.09.06 16:50)


нет


 
Ketmar ©   (2006-09-09 17:06) [16]

значит, плохо пробуешь.


 
guav ©   (2006-09-09 18:57) [17]

> значит, плохо пробуешь.

наверное.
пожалуйста, приведи код, как я могу хорошо попробовать.


 
guav ©   (2006-09-09 19:07) [18]

Я не сохранил свои попытки, но я перекрывал 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 и другую кучу поменьше с вариантами которые я уже пробовал. Видимо задача не трифвиальна


 
Ketmar ©   (2006-09-09 19:20) [19]

ну так там про "easy way" спрашивали. %-)
а код мне делать лень. сильно лень.


 
guav ©   (2006-09-09 19:37) [20]

> а код мне делать лень. сильно лень.

Ну если лень, то наверняка в проблему тоже вникнуть было лень, потому тебе и кажется что [14] должно работать.


 
y-soft ©   (2006-09-10 16:58) [21]

>guav ©   (09.09.06 15:23)  

http://www.torry.ru/vcl/edits/enh/trancomp.zip


 
guav ©   (2006-09-10 23:45) [22]

> [21] y-soft ©   (10.09.06 16:58)

спасибо.



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

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

Наверх




Память: 0.51 MB
Время: 0.052 c
5-1141203638
ancara
2006-03-01 12:00
2006.10.22
Как поймать RecreateWnd у формы?


2-1160116351
Alex_C
2006-10-06 10:32
2006.10.22
Еще вопрос по SynEdit


2-1160133692
harisma
2006-10-06 15:21
2006.10.22
как открыть .doc файл не используя VCL?


2-1159899021
majer_rv
2006-10-03 22:10
2006.10.22
вставить строку в файл


4-1149743403
Misha Uskov
2006-06-08 09:10
2006.10.22
Хук CoCreateInstance