![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| quard |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
dll:
прога:
При нажатии на кнопку ругается: "Can only modify an ... " |
||||
|
|||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ругается он потому что не заданы размеры изображения.
Вообщем я это обошел так.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| quard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Гм... Получилось! Сэнк..))
Но получается что рисовать можно только на канве битмапа |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: нет Всего: 102 |
именно так.. а чтобы рисовать на чем угодно нужно использовать промежуточную канаву.. т.е. например есть картинка JPEG загружаем ее в picture_1 далее канаве_1 задаем теже размеры что и у picture_1, после чего делаем канава_1.Draw(0,0,picture_1.graphic); и уже канаву_1 отображаем в TImage, где уже спокойно рисуем -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| quard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Спасибо. Работает. Но я столкнулся с новой проблемой:
Изображения не накладываются др. на др.: Если после того как на битмапе нарисовала dll вызвать какой-нить метод канвы битмапа (даже, собственно, не рисуя например Image1.Picture.Bitmap.Canvas.Brush.Color) из главной программы то Bitmap.Canvas очищается... Чё делать?(( ЗЫ: Даа не разрисуешься тут ... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
quard, я тоже это заметил когда тестил, более того теряются даже размеры канвы заданные в основной програмее.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| quard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Гм. неужели с этим никто никогда не сталкивался и не решил эту траблу...
А ведь так нужно.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Попробуй переделать на procedure dllMain(var Img : TImage);
Если не поможет, то передавай не TImage, а TBitmap. А при выходе из процедуры, делай Image1.Picture.Assign(bmp). |
|||
|
||||
| quard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Snowy Пробовал. Бесполезно...
|
|||
|
||||
| quard |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Кароче единственный выход который я нашел это передача DC.
Походу запрещено передвать Image как параметр а потом рисовать на нем.... При передаче DC вроде все норм. но опять трабла: Так рисует:
Так а так нет:
Помогите плз. А то я уже совсем не знаю чё делать... |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
quard, может дело в том что у длл нет с программой общего менеджера памяти, может просто подключить и в проект и в длл fastsharemem ???
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| quard |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
alexeis1, да даже если прога без всяких длл... Просто процедура
не работает (где бы она не находилась/ будь то длл или основная прога) сам проверь... |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Есть вариант - передавать указатель на реальный битовый массив и присваивать затем значения реальных цветов один раз по входе в функцию другой раз в программе после получения результата, а вообще лучше устанавливать pixelformat в pf24bit.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| quard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Гм.. а можно пример?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |