Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 10. Feb 2003, 08:46
Es gibt bestimmt bessere Methoden, aber das war jetzt meine erste Idee.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Bmp: TBitmap;
  Can: TCanvas;
  Source, Dest: TRect;
begin
  Self.BringToFront;
  Application.ProcessMessages;
  Can := TCanvas.Create;
  Bmp := TBitmap.Create;
  try
    // screen handle
    Can.Handle := GetDC(0);
    try
      // größe
      Bmp.Width := Self.Width;
      Bmp.Height := Self.Height;
      // ausschnitt festlegen
      Source := Rect(Self.Left, Self.Top, Self.Left + Pred(Self.Width), Self.Top +
          Pred(Self.Height));
      Dest := Rect(0, 0, Pred(Self.Width), Pred(Self.Height));
      // kopieren
      Bmp.Canvas.CopyRect(Dest, Can, Source);
      // speichern
      Bmp.SaveToFile('C:\Temp\Form.bmp');
    finally
      ReleaseDC(0, Can.Handle);
    end;
  finally
    Bmp.Free;
    Can.Free;
  end;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat