![]() |
Maße eines Bitmaps herausfinden mit GetObject geht nicht
Hallo!
Weiß jemand warum die GetObject-Methode nicht funktioniert? Es tritt zwar kein Fehler auf, aber trotzdem stehen nach dem Aufruf von GetObject falsche Werte im Bitmap. Seltsamerweise funktioniert der Code, wenn man ihn in ein Extra-Testporjekt packt, einwandfrei. Nur hier geht das GetObject nicht. Hat irgendjemand eine Idee?
Delphi-Quellcode:
Außerdem funktioniert die MessageBox nicht. Hat da einer ´ne Idee? Kann es vielleicht daran liegen, dass die MessageBox noch vor Beginn der Nachrichtenschleife kommt???
type
TButton_Conquer = class private Pressed: boolean; DCPressed_Bitmap, DCNormal_Bitmap: HDC; HPressed_Bitmap, HNormal_Bitmap: HBitmap; X, Y, Width, Height: Integer; CallWorldDrawBuffer: TWorldDrawBufferProc; CallWorldRundeBeenden: TWorldRundeBeenden; public constructor Create(X_Pos, Y_Pos: Integer; DrawBufferProc: TWorldDrawBufferProc; RundeBeendenProc: TWorldRundeBeenden; MainWindowDC: HDC); end; constructor TButton_Conquer.Create(X_Pos, Y_Pos: Integer; DrawBufferProc: TWorldDrawBufferProc; RundeBeendenProc: TWorldRundeBeenden; MainWindowDC: HDC); var PressedBMP, NormalBMP: Bitmap; begin inherited Create; X := X_Pos; Y := Y_Pos; HNormal_Bitmap := LoadImage(0, Normal_Bitmap_FN, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); HPressed_Bitmap := LoadImage(0, Pressed_Bitmap_FN, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); DCNormal_Bitmap := CreateCompatibleDC(MainWindowDC); DCPressed_Bitmap := CreateCompatibleDC(MainWindowDC); SelectObject(DCNormal_Bitmap, HNormal_Bitmap); SelectObject(DCPressed_Bitmap, HPressed_Bitmap); GetObject(HNormal_Bitmap, SizeOf(BITMAP), @NormalBMP); // hier liegt das Problem GetObject(HPressed_Bitmap, SizeOf(BITMAP), @PressedBMP); // hier liegt das Problem DeleteObject(HNormal_Bitmap); DeleteObject(HPressed_Bitmap); CallWorldDrawBuffer := DrawBufferProc; CallWorldRundeBeenden := RundeBeendenProc; Pressed := false; if (PressedBMP.bmWidth <> NormalBMP.bmWidth) or (PressedBMP.bmHeight <> NormalBMP.bmHeight) then begin MessageBox(HInstance, 'Fehler: Button-Bilder haben ungleiche Maße.', 'Fehler:', 16); end else begin Width := PressedBMP.bmWidth; Height := PressedBMP.bmHeight; end; end; Danke im Voraus |
Re: Maße eines Bitmaps herausfinden mit GetObject geht nicht
Der erste Parameter von MessageBox ist nicht ein HModule sondern ein HWnd, für dass du 0 einsetzen kannst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz