AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Screenshot von Panel als .bmp speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot von Panel als .bmp speichern?

Ein Thema von MrMyagi · begonnen am 27. Mai 2008 · letzter Beitrag vom 27. Mai 2008
Antwort Antwort
MrMyagi

Registriert seit: 2. Mai 2007
203 Beiträge
 
Delphi 7 Personal
 
#1

Screenshot von Panel als .bmp speichern?

  Alt 27. Mai 2008, 16:37
Moin,
u d zwar habe ich jetzt schon herausgefunden, wie ich einen Screenshot von einem Panel
machen kann und zwar:

ScreenShot eines Fensters erstellen:

Hier eine Abwandlung der oberen Funktion. Hier wird das Ergebnis nicht gespeichet, sondern in eine Bitmap geladen:

Benötigt werden zwei Parameter:
Bitmap als Behälter
Handle des Fenster

Delphi-Quelltext markieren

// *** Erstellt von einem Formular ein ScreenShot ***
Delphi-Quellcode:
function FormularScreenShot(Bmp: TBitmap; h : hWnd): Boolean;
var
  Rec: TRect;
  iWidth, iHeight: Integer;
begin
  with Bmp do try
    GetWindowRect(h, Rec);


    iWidth := Rec.Right - Rec.Left;
    iHeight := Rec.Bottom - Rec.Top;


    Width := iWidth;
    Height := iHeight;


    BitBlt(Canvas.Handle, 0, 0, iWidth, iHeight, GetWindowDC(h), 0, 0, SRCCOPY);


    Result := True;
  finally
    ReleaseDC(h, GetWindowDC(h));
  end;
end;



Beispiel:

ScreenShot eines Panels erstellen und auf den Formular zeichnen:
Delphi-Quelltext markieren

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    FormularScreenShot(Bmp, Panel1.Handle);
    Canvas.Draw(20, 20, Bmp);
  finally
    Bmp.Free;
  end;
end;
Meine Frage nun allerdings ist, wie ich den Screenshot von dem Panel nun speichern kann, da er so nur auf der Form ausgegeben wird??


mfg, Nico
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Screenshot von Panel als .bmp speichern?

  Alt 27. Mai 2008, 16:40
Hi,

Delphi-Referenz durchsuchenBmp.SaveToFile

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
MrMyagi

Registriert seit: 2. Mai 2007
203 Beiträge
 
Delphi 7 Personal
 
#3

Re: Screenshot von Panel als .bmp speichern?

  Alt 27. Mai 2008, 16:41
Dankeschön, werde es gleich ausprobieren^^
  Mit Zitat antworten Zitat
Bentissimo

Registriert seit: 25. Apr 2006
Ort: Friedenfels
82 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Screenshot von Panel als .bmp speichern?

  Alt 27. Mai 2008, 17:00
Hi zusammen,

ich hab mal eine kleine Prozedur geschrieben mit der die Aufgabe generell gelöst werden kann, also nicht nur für ein Panel, sondern für jede von TWinControl abgeleitete Klasse.

Der Trick ist die Verwendung der Methode PaintTo(...).

Delphi-Quellcode:
   
procedure CreateScreenShot(AWinControl: TWinControl; AFileName: String);
var
   B: TBitmap;
begin
   B := TBitmap.Create;
   with AWinControl do
      begin
         B.Width := Width;
         B.Height := Height;
         PaintTo(B.Canvas, 0, 0);
      end;
   B.SaveToFile(AFileName);
   B.Free;
end;
Viele Grüße,
Stephan
Stephan Schmahl
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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