Hallo zusammen,
ich hab folgendes Problem an dem ich mir jetzt schon mehrere Tage die Zähne ausgebissen... Vieleicht hat hier noch jemand eine Idee. Bei Google bin ich auch nicht fündig geworden.
Ich binde eine
COM Dll in meine Applikation ein die mir Images zurückgibt. Das funktioniert auch solang ich Funktionen dieser
DLL nutze. Für bestimmte Formate muss ich aber Prozeduren aufrufen die mir ein Image zurück liefern. In c# funktioniert das auch hervorragend. Bei Delpi bekomme ich immer eine Acception.
Ich hab meinen Sourcecode angehängt. Vieleicht hat jemand mal zeit kurz darüber zu schauen...
Grüße
Mark
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
ImageType = 102;
var
myImageAC: TImageAC;
myBitmapImage: TBitmapImage;
tempBitmap: TBitmap;
tempPicture: TPicture;
begin
myImageAC := TImageAC.Create(Self);
myImageAC.OpenImage('C:\Temp\DemoSlide\TestSlide');
myImageAC.Connect;
//
myBitmapImage := TBitmapImage.Create(Self);
myBitmapImage.ConnectTo(myImageAC.GetSingleImage(ImageType)); // Def. der Funktion : function GetSingleImage(ImageType: Integer): IBitmapImage;
//
tempPicture := TPicture.Create;
SetOlePicture(tempPicture, myBitmapImage.Picture as IPictureDisp);
//
tempBitmap := TBitmap.Create;
tempBitmap.Height := tempPicture.Height;
tempBitmap.Width := tempPicture.Width;
tempBitmap.Canvas.Draw(0, 0, tempPicture.Graphic);
tempBitmap.SaveToFile('C:\temp\testBitmap.tiff');
tempBitmap.Free;
tempPicture.Free;
myBitmapImage.Free; //<-------------------------------- bis hier funtioniert alles.
//
myBitmapImage := TBitmapImage.Create(Self);
//
myImageAC.GetImageMap(7, myBitmapImage); // Def. der Funktion : procedure GetImageMap(Magnification: Integer; var pPicture: IBitmapImage);
//< Hier komm ich nicht weiter da die Variable vom Type Interface ist >
end;