API Функция загрузки bmp для ББ: Loadimage. Проблема в том что она не работает в WINCE. Почитав форумы, пишут что вместо Loadimage под WINCE нужно использовать SHLoadDIBitmap. Но и эта функция не дает результата.
Вот пример загрузки и отрисовки картинок в wince и ББ
Код для WINCE
- Код: Выделить всё
uses windows;
function SHLoadDIBitmap(_para2:LPCTSTR):HBITMAP; external KernelDLL name 'SHLoadDIBitmap';
procedure TForm1.Button1Click(Sender: TObject);
var
b:graphics.tbitmap;
hbtm:hbitmap;
hmdc,main:hdc;
begin
hbtm:=SHLoadDIBitmap(pwidechar('1.bmp')); {загружаем картинку}
Main := GetDC(Handle); {дескриптор дисплейного контекста из дескриптора формы}
hmdc:= CreateCompatibleDC(Main); {Создаётм совместимый с оконным контекст памяти}
SelectObject(hmdc, hbtm); {Выбираем объект картинку}
GetObject(hbtm, sizeof(b), @b); {Получаем высоту и ширину картинки}
BitBlt(Main,0,0,100,100,hmdc,0,0,SRCCOPY); {Рисуем картинку на форме}
DeleteDC(hmdc); {Прибираемся}
DeleteObject(hbtm);
end;
Код для ББ
- Код: Выделить всё
uses windows;
procedure TForm1.Button2Click(Sender: TObject);
var
b:graphics.tbitmap;
hbtm:hbitmap;
hmdc,main:hdc;
begin
hbtm:=LoadImage(GetModuleHandle(Nil), pchar('1.bmp'), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); {загружаем картинку}
Main := GetDC(Handle); {дескриптор дисплейного контекста из дескриптора формы}
hmdc:= CreateCompatibleDC(Main); {Создаётм совместимый с оконным контекст памяти}
SelectObject(hmdc, hbtm); {Выбираем объект картинку}
GetObject(hbtm, sizeof(b), @b); {Получаем высоту и ширину картинки}
BitBlt(Main,0,0,100,100,hmdc,0,0,SRCCOPY); {Рисуем картинку на форме}
DeleteDC(hmdc); {Прибираемся}
DeleteObject(hbtm);
end;
С ББ все впорядке, а вот код для WINCE не работает. В чем может быть проблема?