Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2009, 16:09   #11
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Возможно нужно передавать var параметр:
Код:
function ShowAbout(Handle: THandle;var BitMap : TBitMap):Longint;
такая же ошибка

Цитата:
Сообщение от Stilet Посмотреть сообщение
И кстати, почему не попробовать обычным присваиванием?
Если ты имееш в виду так
Код:
BitMap1 := BitMap;
то ошибка уже такая

Exception EConvertError in module Project1.exe at 000154B4.
lexaltd вне форума Ответить с цитированием
Старый 14.07.2009, 16:27   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lexaltd
Так, я недосмотрел... Ты ведь в первом нерабочем примере не создаешь BitMap, а во втором создаешь,
Для Form1.Image1.Picture.Bitmap.Assign( BitMap);// тут вываливается ошибка нужно чтоб параметр в нем небыл равен nil иначе:
Код:
procedure TPersistent.Assign(Source: TPersistent);
begin
  if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
end;
Так что создавать нужно экземпляр
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2009, 17:20   #13
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А по-моему, все проще - если не использовать в качестве имен зарезервированные слова, то можно избежать многих проблем...
Вас самого не коробит ваша конструкция:
Bitmap.Assign(BitMap) ?
Сделайте хотя бы
Form1.Image1.Picture.Bitmap.Assign( BitMap1);
И еще. Не поленитесь посмотреть в хэлпе про этот метод.
Там довольно полезные вещи в примере указаны. Например, Dormant, FreeImage, ReleaseHandle ...

Последний раз редактировалось mihali4; 14.07.2009 в 17:40.
mihali4 вне форума Ответить с цитированием
Старый 14.07.2009, 17:47   #14
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А по-моему, все проще - если не использовать в качестве имен зарезервированные слова, то можно избежать многих проблем...
Вас самого не коробит ваша конструкция:
Bitmap.Assign(BitMap) ?
Где там такое написано ?
Там написано
BitMap1.Canvas.Draw(0,0,BitMap);

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Сделайте хотя бы
Form1.Image1.Picture.Bitmap.Assign( BitMap1);
И еще. Не поленитесь посмотреть в хэлпе про этот метод.
Там довольно полезные вещи в примере указаны. Например, Dormant, FreeImage, ReleaseHandle ...
Код:
function ShowAbout(Handle: THandle;BitMap12 : TBitMap):Longint;
begin
 Application.Handle:= Handle;
 Form1:= TForm1.Create(Application);
 Form1.Image1.Picture.Bitmap.Assign(BitMap12);// тут вываливается ошибка 
 Form1.Show;
 Result:=LongInt(Form1);
end;
Если от этого что то изменится

Так что создавать нужно экземпляр
Во втором примери я создаю Bitmap1 уже в ДЛЛ и потом делаю ширину и высоту такую как Bitmap каторый передал и делаю BitMap1.Canvas.Draw(0,0,BitMap);
А в первом примери что я там создам - Bitmap.Create который передал

Если передавать Handle ТBitmap то тогда процедура Assign работает
Код:
Image1.Picture.Assign(BitMap12);

Последний раз редактировалось lexaltd; 14.07.2009 в 18:38.
lexaltd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение DLL и EXE Alex Cones Общие вопросы Delphi 2 19.04.2009 16:20
Как передать данные в MDIChild-форму, загруженную из dll Shvonder Общие вопросы Delphi 0 18.03.2009 12:46
чтение из одного exe файла, и запись в другой exe inndim Общие вопросы Delphi 2 04.02.2009 15:23
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53