Разные TBitmap

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Разные TBitmap

Сообщение GAMER »

Хотел скриншотик сделать.

Код: Выделить всё

procedure TMainForm.Button1Click(Sender: TObject);
Var
  MyBitmap : TBitmap;
  ScreenDC : HDC;
begin
  MyBitmap:=TBitmap.Create;
  ScreenDC:=GetDC(Camera.Handle);
  MyBitmap.LoadFromDevice(ScreenDC);
  Image1.Picture.Bitmap:=MyBitmap;
  MyBitmap.Free;
end;

Все нормально.
Вставляю в другую программу - ругается.
Разбираюсь.
Во второй программе используется модуль Windows, в котором есть код:

Код: Выделить всё

     BITMAP = record
          bmType : LONG;
          bmWidth : LONG;
          bmHeight : LONG;
          bmWidthBytes : LONG;
          bmPlanes : WORD;
          bmBitsPixel : WORD;
          bmBits : LPVOID;
       end;
     PBITMAP = ^BITMAP;
     NPBITMAP = ^BITMAP;
     LPBITMAP = ^BITMAP;
     tagBITMAP = BITMAP;
     TBITMAP = BITMAP;

То есть TBitmap совершенно не тот, что в Graphics.
Что делать?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

В чём проблема?

Код: Выделить всё

procedure TMainForm.Button1Click(Sender: TObject);
Var
  MyBitmap : Graphics.TBitmap;
  ScreenDC : HDC;
begin
  MyBitmap:=Graphics.TBitmap.Create;
  ScreenDC:=GetDC(Camera.Handle);
  MyBitmap.LoadFromDevice(ScreenDC);
  Image1.Picture.Bitmap:=MyBitmap;
  MyBitmap.Free;
end;
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Хм... Все нормально. Где-то была ошибка и такой вариант при Кнтр+Пробел не сработал, по-этому поднял панику. Сейчас все нормально.
Кнтр+Пробел - зло! :)
Sheleh
новенький
Сообщения: 24
Зарегистрирован: 12.11.2010 17:31:07

Сообщение Sheleh »

Было тоже самое, когда добавил в uses модуль windows в самом конце списка. А надо было в начале.
Ответить