Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   GetOlePicture verändert Größe des Bildes (https://www.delphipraxis.net/175710-getolepicture-veraendert-groesse-des-bildes.html)

KalEl 11. Jul 2013 12:35

GetOlePicture verändert Größe des Bildes
 
Hallo,

ich versuche über GetOlePicture und SetOlePicture Bilder an ein ActiveX Control und wieder zurück zu übergeben. Prinzipiell funktioniert das auch, allerdings verändert sich durch die Überagbe die Größe des Bitmaps...

Beispiel:

Code:
var
  IPic : IPictureDisp;
begin
  FPicture := TPicture.Create();
  FPicture.LoadFromFile('c:\test.bmp');
  GetOlePicture(FPicture, IPic);

  //Übergabe an ActiveX Control
  FGrid.SetImage(I_Pic as IPicture);
end;
Im ActiveX Control mache ich dann folgendes:

Code:
FPicture := TPicture.Create();
SetOlePicture(imgMap.Picture, image as IPictureDisp);
imgMap (ein TImage auf dem Formular) enthält nun korrekterweise das Bild, allerdings hat sich die ursprüngliche Größe von 80x300 Pixel auf 60x225 reduziert. Interessanterweise wird durch Stretch := true das Bild völlig korrekt dargestellt, wenn man das TImage auf 80x300 setzt, d.h. ohne jeden Verlust und ohne Interpolation, was mich darauf schließen lässt, dass die Daten dann wohl doch irgendwie richtig übergeben werden...

Das Problem betrifft Delphi 2010, ich weiß, dass in früheren Delphi-Versionen (5,6,7) ein Bug existierte, habe aber nichts für neuere Versionen gefunden.

Hat jemand von euch einen Tipp dazu?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz