Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: GDI+ & LoadFromResource Marke Eigenbau machts nicht

  Alt 11. Nov 2007, 09:29
Hallo,

so, ich habe Deinen Constructor mal in eine Funktion verpackt und den FindResource-Aufruf auf WideChars geändert. Bei mir funktioniert das:
Delphi-Quellcode:
function CreateFromResource(Instance: HMODULE;
  const bitmapName: WideString): TGPBitmap;
var
  hResource: HRSRC;
  imageSize: DWORD;
  hResData: DWORD;
  pResourceData: Pointer;
  hBuffer: DWORD;
  pBuffer: Pointer;
  pStream: IStream;
begin
  Result := nil;

  hResource := FindResourceW(hInstance, PWideChar(bitmapName), PWideChar(RT_RCDATA));
  imageSize := SizeofResource(hInstance, hResource);
  hResData := LoadResource(hInstance, hResource);
  pResourceData := LockResource(hResData);

  hBuffer := GlobalAlloc(GMEM_MOVEABLE, imageSize);
  pBuffer := GlobalLock(hBuffer);

  CopyMemory(pBuffer, pResourceData, imageSize);
  pStream := nil;

  if CreateStreamOnHGlobal(hBuffer, FALSE, pStream) = S_OK then
    Result := TGPBitmap.Create(pStream);

  GlobalUnlock(hBuffer);
  GlobalFree(hBuffer);

  UnlockResource(hResData);
end;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat