Einzelnen Beitrag anzeigen

meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#1

TImage - warum diese Fehlermeldung

  Alt 19. Dez 2005, 21:19
Hallo, habe folgenden Code

Delphi-Quellcode:
function ScreenToFile():timage;
var
  screenimage:timage;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      screenimage := timage.Create(nil);
      try

        screenimage.Picture.Bitmap.Width := Screen.DesktopWidth;
        screenimage.Picture.Bitmap.Height:= Screen.DesktopHeight;
        screenimage.Picture.Bitmap.PixelFormat := pf32bit;

        BitBlt(screenimage.Picture.Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
            Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
            Screen.DesktopTop, screenimage.Picture.Bitmap.Canvas.CopyMode);
        //screenimage.Picture.bitmap.SaveToFile('c:\screen.bmp');

      finally
        ScreenToFile:=screenimage;
        screenimage.Free;
      end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    Canvas.Free;
  end;
end;








procedure TForm1.Button1Click(Sender: TObject);
begin

image1 := screentofile();
image1.Picture.Bitmap.SaveToFile('C:\neuertest.bmp');

end;
wie ihr seht, habe ich eine funktion die ein timage zurück gibt (in diesem falle einen screenshot). image1 ist bei mir ein Image - control auf meinem formular. wenn ich nun diesem image den rückgabe wert von screentofile() zuweise und ihn wie im beispiel speichern will, bekomme ich immer einen fehlermeldung (exeption an stelle bla , bla, bla komische hex-zahl bla bla)


warum ??? wenn ich in der prozedur das timageobject mit screenimage.Picture.bitmap.SaveToFile('c:\screen.b mp'); speicher klappt alles wunderbar??!!
  Mit Zitat antworten Zitat