|
Модераторы: Snowy, Alexeis, MetalFan |
|
okamor71 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.10.2006 Репутация: нет Всего: нет |
Помогите, а то горю надо содержимое с TPaintBox скопировать в TImage
|
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
image1.Canvas.CopyRect(PaintBox1.ClientRect, PaintBox1.Canvas, PaintBox1.ClientRect);
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
okamor71 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.10.2006 Репутация: нет Всего: нет |
Ругается:
Can only modify an image if it contains a bitmap. Добавлено @ 18:55 правда потом я этот TImage передаю в функцию
|
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Странно... я только что этот код скомпилил и проверил. Все работает как часы. okamor71, попробуй на чистом проекте, я думаю проблема на другом участке кода. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
okamor71 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.10.2006 Репутация: нет Всего: нет |
alexeis1, функция у меня в dll-ке, конекчусь к ней
после чего вызываю
|
||||
|
|||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
А ну тогда ясно. С дллкой уже были подобные проблемы. Возможно теряется графический дескриптор. Советую после передачи имаги вызвать. Image1.Invalidate(); а затем application.processmessages(); Первая функция укажет, что текущее изображение не действительно и требует перерисовки, а вторая заставит принудительно обработать все сообщения, в том числе и сообщение о перерисовке, и соответственно должен будет получен новый графический дескриптор. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
okamor71 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 15.10.2006 Репутация: нет Всего: нет |
alexeis1, весь прикол состоит в том что если использовать ее через библиотеку то кроем матом, а если в модуле то все нормально, и где копать немогу понять, в библиотеке только одна эта функция
Добавлено @ 20:46 alexeis1, не рабатает |
|||
|
||||
Alexeis |
|
||||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Из-за каких-то проблем с RTI, неправильно функционируют объекты VCL, но есть возможность передавать хендл виндового объекта например так.
Вот так выглядит проект
Видно что параметр bmp : hBitmap А вот так выглядит дллка
Т.е. делфячий объект пересоздаем, но виндовый только устанавливаем. tmp.Handle := bmp; -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
После внимательного изучения вопроса, а пришел к выводу, о том, что данная проблема относится скорее к области системного программирования, а потому, для решения данного вопроса создана тема в разделе Delphi: WinAPI и системное программирование Приложене и DLL особенности их взаимодействия, Неверно функционируют компоненты
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Нужно в dll передавать не TImage, а HDC.
И уже на него делать BitBlt. Добавлено @ 12:49 HDC брать в Image1.Picture.Bitmap.Canvas.Handle |
|||
|
||||
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |