Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Народ! Может просто уже вечер или еще чего... Но вот что-то никак не могу понять, как мне нарисовать прямоугольник на форме в PowerBuilder 7. Может кто подскажет? Откуда ноги растут: есть картинка, на которой заданы координаты прозрачных четырехугольников. Нужно их на этой картинке отобразить. Как бы это сделать? Я думал попробовать с line поработать, но чего-то не сростается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 18:58 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Вообще то РВ имеет т.н. Rectangle control... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 19:01 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
... но как его сделать прозрачным??? И еще - как его динамически сгенерить? А еще у меня не получается открыть не-dragObject.. По крайней мере при помощи OpenUserObject. Или как нужно create-ить line или rectangle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 19:03 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Rectangle control не есть dragobject, посему открыть его с помощью OpenUserObject не выйдет. Надо делать custom visual userobject на котором в пайнтере засунут Rectangle... По большому счёту если надо динамически, то всё это глупости и рисовать надо в datawindow controlе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 19:18 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Ммммммммм... А зачем мне на dataWindow вообще рисовать??? У меня на форме ни одного DW нету!!! Есть Picture, в котором картинка... На этой картинке - объекты, описанные в БД. И мне нужно вокруг этих объектов выводить разноцветные рамки (цвет зависит от состояния объекта). Так что Rectangle мне не подойдет если у него нет свойства прозрачности... Думал рисовать линии - но в Painter'e они не хотели рисоваться поверх картинки (Bring To Top не помогало), а как это сделать в run-time чего-то никак сообразить не могу... или может есть еще какой способ?? Кто чего может предложить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 11:11 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Используйте statictext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 11:50 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
авторА зачем мне на dataWindow вообще рисовать???Потому что динамически создавать и изменять прямоугольники в datawindow проще и удобнее. и проблем с прозрачностью никаких. что то вроде этого: dw.Modify("create bitmap(.... x='1' y='1' height='300' width='500' filename='c:\file.bmp)'" ) dw.Modify("create rectangle(... x='123' y='123' height='123' width='123' brush.hatch='7' brush.color='0' pen.style='0' pen.width='4' pen.color='0' background.mode='1' background.color='0')") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 12:06 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
__GuestИспользуйте statictext А его можно сделать прозрачным?? ЗоринАндрей авторА зачем мне на dataWindow вообще рисовать???Потому что динамически создавать и изменять прямоугольники в datawindow проще и удобнее. и проблем с прозрачностью никаких. Да, это конечно может и хорошо и удобно - но у меня есть файл с картинкой на локальном компутере, есть объект Picture, в котором этот файл выводится... Наворочено уже обработчиков всяких... Просто неожиданно новый заказчик захотел в старую задачу навернуть новые возможности - не переделывать же накопленное с нуля?? Как-то не хочется переходить от picture куда-то еще... Есть ли другие предложения?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 12:19 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
__GuestИспользуйте statictext Vadim RomanenkoА его можно сделать прозрачным??как правило - нет. когда-то видел фокус - в конструкторе ставится backColor = 2^29 в событии pbm_paint передергивается visible = False/True но все равно как-то глючно оно отрисовывало статик. Vadim RomanenkoКак-то не хочется переходить от picture куда-то еще... ну тогда это карма. Есть еще вариант для сильных духом Отмапить pbm_paint и рисовать самостоятельно с помощью WinAPI. Create a device context for window Invalidate the rectangle you intend to paint (must do this or you cannot paint) Allocate any brushes or pens you intend to use Select into the device context the brush/pen Do the painting within the invalidated area Select the original (brush/pen) back into the device context Validate the rectangle ( or you will get recursive wm_paint messages) Release brushes and pens Release the device context Handle, GetDC, InvalidateRgn, ValidateRgn, ReleaseDC, приключения с перерисовкой при минимизации/восстановлении, WM_NCPAINT, WM_ERASEBKGND ... ну как? уже страшно? ИМХО путь к дальнейшему ухудшению кармы. Когда устанете это дело отлаживать - возвращайтесь к идее с datawindow ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:09 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
1. Прозрачный четырехугольник можно изобразить комбинацией 4-х непрозрачных четырехугольников. 2. На крайний случай, в качестве прозрачного четырехугольника, можно использовать окно с дыркой посередине. Прямоугольник с дыркой посередине нудно поместить на картинки или вокруг картинки? Во втором случае можно обойтись без дырки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:16 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Vadim Romanenko ЗоринАндрей авторА зачем мне на dataWindow вообще рисовать???Потому что динамически создавать и изменять прямоугольники в datawindow проще и удобнее. и проблем с прозрачностью никаких. Да, это конечно может и хорошо и удобно - но у меня есть файл с картинкой на локальном компутере, есть объект Picture, в котором этот файл выводится... Наворочено уже обработчиков всяких... Просто неожиданно новый заказчик захотел в старую задачу навернуть новые возможности - не переделывать же накопленное с нуля??Переделать userobject методом Copy&Paste на другой в данном конкретном случае, IMHO, быстрее и проще, чем использовать "другие предложения" Vadim RomanenkoЕсть ли другие предложения??Есть конечно : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:16 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей... ИМХО путь к дальнейшему ухудшению кармы. Когда устанете это дело отлаживать - возвращайтесь к идее с datawindow Отлично сказано :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:17 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
УЖЖЖЖЖЖЖЖЖАСССССССССС!!!!!!!!!!! Неужели я через пару лет работы с билдером буду вынужден понять, что это какая-то недоделка??? Ну где это видано, чтоб поверх картинки нельзя было нарисовать, на крайняк с-create'ить объект-линию??? Насчет фокуса со StaticText'ом - нужно было сделать выделение области, присобачили SingleLineEdit и по таймеру в случае, если что-то выделяли - if b then sle_1.visible=not(sle_1.visible) end if; Насчет идей - у меня уже есть несколько... Например генерить объект Picture с прозрачным GIFом нужного размера (просто растягивать прозрачный гиф) и границы выделять... Или копировать область картинки большой на маленький объект Picture и выводить поверх уже с рамкой... Но все перелопачивать и менять идеологию вообще из-за того, что вроде как нельзя динамически нарисовать линию поверх другого объекта... ИМХО жуть/ужас/бред!! Ну как такое могет быть??? Не хочу в такое верить :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:22 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Локшин Марк1. Прозрачный четырехугольник можно изобразить комбинацией 4-х непрозрачных четырехугольников. Как динамически нарисовать четырехугольник?? Я согласен составить четырехугольник даже из четырех линий :) Только как это сделать динамически??? Локшин Марк 2. На крайний случай, в качестве прозрачного четырехугольника, можно использовать окно с дыркой посередине. Прямоугольник с дыркой посередине нудно поместить на картинки или вокруг картинки? Во втором случае можно обойтись без дырки. А как это - с дыркой посередине??? Мне нужно на одной картинке забабахать кучу "окантовок" для нарисованных объектов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:27 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoУЖЖЖЖЖЖЖЖЖАСССССССССС!!!!!!!!!!! Неужели я через пару лет работы с билдером буду вынужден понять, что это какая-то недоделка??? Ну где это видано, чтоб поверх картинки нельзя было нарисовать, на крайняк с-create'ить объект-линию???Гм... Два года - не срок :-)). Все можно сделать, вопрос только в ресурсах. Vadim RomanenkoНо все перелопачивать и менять идеологию вообще из-за того, что вроде как нельзя динамически нарисовать линию поверх другого объекта... ИМХО жуть/ужас/бред!! Ну как такое могет быть??? Не хочу в такое верить :(Менять "идеологию вообще" вам предлагают из-за того, что изначально была непродумана архитектура приложения. Hint: сервисы, сервисы, сервисы... Если, конечно, еще не поздно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:33 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Например генерить объект Picture с прозрачным GIFом нужного размеране получится. Но все перелопачивать и менять идеологиюну вот значит изначально идеология была ошибочна. ничего, с кем не бывает... ИМХО жуть/ужас/бред!! Ну как такое могет быть??? Не хочу в такое верить :(А-тставить истерику! я знал человека который еще под ДОС писал драйвер для "нестандартного" устройства на Клиппере. самое смешное что он его таки написал. еще смешнее что он таки работал, но так меееееедлеееееенннннооооо. билдеру - билдерово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:34 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoКак динамически нарисовать четырехугольник?? Я согласен составить четырехугольник даже из четырех линий :) Только как это сделать динамически??? Ну так Филипп уже сказал - сделать custom visual user object, в который засунуть ractangle. На форме динамичеки размещаем 4 оюъекта данного типа, подобрав координаты. Размер ractangle внутри объекта должен быть равен размеру объекта. Vadim RomanenkoА как это - с дыркой посередине??? Мне нужно на одной картинке забабахать кучу "окантовок" для нарисованных объектов... WinAPI функция SetWindowRgn(...) и около нее. Недавно на форуме обсуждалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:35 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
PL99 Vadim RomanenkoУЖЖЖЖЖЖЖЖЖАСССССССССС!!!!!!!!!!! Неужели я через пару лет работы с билдером буду вынужден понять, что это какая-то недоделка??? Ну где это видано, чтоб поверх картинки нельзя было нарисовать, на крайняк с-create'ить объект-линию???Гм... Два года - не срок :-)). Все можно сделать, вопрос только в ресурсах. Согласен. И со сроком, и с ресурсами. Но я вообще-то имел в виду, что недоделка - это Билдер ;) Не могу назвать ни одного нормального языка, в котором нельзя было бы скреатить один объект поверх другого динамически... PL99 Vadim RomanenkoНо все перелопачивать и менять идеологию вообще из-за того, что вроде как нельзя динамически нарисовать линию поверх другого объекта... Менять "идеологию вообще" вам предлагают из-за того, что изначально была непродумана архитектура приложения. Hint: сервисы, сервисы, сервисы... Если, конечно, еще не поздно. Мммммм... А при чем тут сервисы-сервисы-сервисы??? ПС: Предложение Локшина Марка мне в любом случае нравится куда больше, чем все эти излияния с WinAPI и переходом на DataWindow - по-моему это слишком сложное решение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:43 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей Например генерить объект Picture с прозрачным GIFом нужного размеране получится. А почему же не получится?? Создать динамически Picture не выйдет??? ЗоринАндрей ИМХО жуть/ужас/бред!! Ну как такое могет быть??? Не хочу в такое верить :(А-тставить истерику! я знал человека который еще под ДОС писал драйвер для "нестандартного" устройства на Клиппере. самое смешное что он его таки написал. еще смешнее что он таки работал, но так меееееедлеееееенннннооооо. билдеру - билдерово. Ну да, в очередной раз убеждаюсь - в билдере лучше пользоваться только DataWindow... Для рисования он не предназначен :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 13:46 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Vadim RomanenkoНе могу назвать ни одного нормального языка, в котором нельзя было бы скреатить один объект поверх другого динамически... А кто вам мешает динамически создавать любые Windowed-объекты функцией CreateUserObject? Вы же задали вопрос про прямоугольник и Филлип вам на него ответил. То, что другие языки имеют в поставке обертки соответствующих API, говорит только о том, что это более низкоуровневые и, следовательно, универсальные средства. ЗоринАндрейбилдеру - билдерово :-) Vadim RomanenkoМммммм... А при чем тут сервисы-сервисы-сервисы???Именно в них должны были бы быть закодированы реакции на события, о которых вы упомянули. В визуальных объектах - только вызовы функций соответствующих сервисов. В этом случае вас не испугали бы предложения обратиться к Windows API. Кстати, вы как думаете, приведенный мной несколькими постами выше кусок кода с объявлениями функций просто так появился на свет? Он позволял неплохо рисовать :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 17:21 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
PL99 Vadim RomanenkoНе могу назвать ни одного нормального языка, в котором нельзя было бы скреатить один объект поверх другого динамически... А кто вам мешает динамически создавать любые Windowed-объекты функцией CreateUserObject? Вы же задали вопрос про прямоугольник и Филлип вам на него ответил. Дело в том, что даже в Паинтере у меня не получилось создать объект Line поверх объекта Picture... Почему-то он постоянно размещался на Back от Picture. И никак не хотел тащиться на верх. Потому и задал вопрос - как его создать динамически, чтоб попробовать это сделать в рантайме. Но так никто и не ответил :( Сейчас пытаюсь пойти по пути, предложенному Локшиным Марком... Но все время начальство отвлекает - никак не доберусь до конца :( PL99 Vadim RomanenkoМммммм... А при чем тут сервисы-сервисы-сервисы???Именно в них должны были бы быть закодированы реакции на события, о которых вы упомянули. В визуальных объектах - только вызовы функций соответствующих сервисов. В этом случае вас не испугали бы предложения обратиться к Windows API. Кстати, вы как думаете, приведенный мной несколькими постами выше кусок кода с объявлениями функций просто так появился на свет? Он позволял неплохо рисовать :-)) Насчет вашего куска - я так думаю, это и есть кусок объявления функций из WinAPI? Дело в том, что я, к своему стыду, соввершенно не знаком с WinAPI и его применением в PB... Потому наверное и не понял, что такое сервисы-сервисы-сервисы :( Спасибо за помощь! Как допытаюсь - сообщу, получилось ли чего-то, и как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 17:32 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Вот statictext с прозрачнім фоном - то что Вам нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 18:00 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Пример рисования с помощью datawindow... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 18:55 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
Мммм... А не могли бы вы подсказать, как мне самому сделать такой StaticText с прозрачным фоном??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 18:55 |
|
||
|
Рисование на форме/или объекте picture
|
|||
|---|---|---|---|
|
#18+
roleksВот statictext с прозрачнім фоном - то что Вам нужно Большое спасибо! А то я уже начал извращаться с UO, у которого заливка черная, 4 штуки на 1 прямоугольник... Неудобно - просто жуть! ПС: По поводу объяснить, как - я имел в виду, откудова такая идея :) Принцип что-ли... А то мало ли - когда еще понадобится прозрачность где-то сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2005, 19:02 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32861088&tid=1338609]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 289ms |
| total: | 436ms |

| 0 / 0 |
