Einzelnen Beitrag anzeigen

KalEl

Registriert seit: 17. Jun 2010
14 Beiträge
 
Delphi 2 Desktop
 
#1

GetOlePicture verändert Größe des Bildes

  Alt 11. Jul 2013, 12:35
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?
  Mit Zitat antworten Zitat