Autor Beitrag
NOS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
BeitragVerfasst: So 15.06.08 21:57 
Hallo zusammen,

ich möchte gern in meiner anwendung einen teil der anwendung auf knopfdruck als screenshot abspeichern ... also einen rechteckigen ausschnitt meines programmes capturen ... dort liegen mehrere komponenten übereinander und das ergebniss möchte ich gern sehen als screenshot ....

wer kann mir helfen ?

_________________
Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren :-)
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 16.06.08 07:55 
Eine Möglichkeit:
mit form1.GetFormImage einen Screenshot deines Forms machen und dann mit den bekannten Koordinaten selber das Bitmap zurechtschneiden.

_________________
In the beginning was the word.
And the word was content-type: text/plain.
NOS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
BeitragVerfasst: Mo 16.06.08 15:32 
user profile iconmatze hat folgendes geschrieben:
Eine Möglichkeit:
mit form1.GetFormImage einen Screenshot deines Forms machen und dann mit den bekannten Koordinaten selber das Bitmap zurechtschneiden.


Hallo Matze,

vielen lieben Dank für die Info ... also ich mache ja schon ein paar Jahre was im Delphi-Bereich ... aber von der Funktion wußte ich bis heute garnicht ... super

Tausend Dank und einen schönen Tag,

_________________
Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren :-)
NOS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
BeitragVerfasst: Mo 16.06.08 18:44 
user profile iconmatze hat folgendes geschrieben:
Eine Möglichkeit:
mit form1.GetFormImage einen Screenshot deines Forms machen und dann mit den bekannten Koordinaten selber das Bitmap zurechtschneiden.


Hallo Matze ... leider scheint das nicht so zu funktionieren ... ich habe es so ausprobiert aber es dauert lange und das bild hat vertikale streifen ... gibt es eine andere variante das zu machen ?



Grüße,

_________________
Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren :-)
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mo 16.06.08 19:37 
Hi!
Du könntest Deine Komponenten auch auf ein Panel legen mit der Eigenschaft BevelOuter := bvNone;.
Das Panel lässt sich über ein eigenes Handle ansprechen, benötigst also hinterher kein Zuschneiden mehr.
Z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
var
  PanDC: HDC;
  ATarget: TBitmap;

procedure Init; // einmal setzen
begin
   PanDC := GetDC(Form1.Panel1.Handle);
   ATarget := TBitmap.Create;

   ATarget.Width := Form1.Panel1.Width;
   ATarget.Height := Form1.Panel1.Height;
end;

procedure MakeScreenShot;
begin
  BitBlt(ATarget.Canvas.Handle, 0, 0, Form1.Image1.Width, Form1.image1.Height, PanDC, 0, 0, SRCCOPY);
end;

// Finally:
  ATarget.Free;
  DeleteDC(PanDC);

Die Bilder könntest Du nun in einer ImageList ablegen. Ich hoffe jedenfalls, dass das schneller geht. ;)

Grüße,
Marc