![]() |
kleine Frage zum screenshot machen
hi ne kleine Frage^^
wieso geht
Delphi-Quellcode:
aber das hier nicht?
MakeScreenShot(Image1.Picture.Bitmap);
Delphi-Quellcode:
(mit dem procedure)
Var
Varscreen:TBitmap; begin MakeScreenShot(Varscreen); Image1.Picture.Bitmap:=Varscreen;
Delphi-Quellcode:
das versteh ich nciht das ist doch das Gleiche??:(
procedure MakeScreenShot(const ATarget: TBitmap);
var DesktopDC: HDC; begin DesktopDC := CreateDC('DISPLAY', nil, nil, nil); try ATarget.PixelFormat := pfDevice; ATarget.Width := Screen.Width; ATarget.Height := Screen.Height; BitBlt(ATarget.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DesktopDC, 0, 0, SRCCOPY); finally DeleteDC(DesktopDC); end; end; ich möchte den screenshot in eine Variable speichern, wie soll das denn anders gehen, wenn nicht da wie oben? |
Re: kleine Frage zum screenshot machen
hast du Varscreen creiert?
Gruß Alexander |
Re: kleine Frage zum screenshot machen
Weil du dein VarBitmap erstmal Createn musst ;) Und dann nicht einfach den Pointer zuweisen, sondern Image.Picture.Assign(VarBitmap) ..
|
Re: kleine Frage zum screenshot machen
meinst du so?
Delphi-Quellcode:
das ändert nichts, krieg trotzdem einen error..:(
Var
Varscreen:TBitmap; begin varscreen.Create; Image1.Picture.Assign(Varscreen); MakeScreenShot(Varscreen); Image1.Picture.Bitmap:=Varscreen; end; hab ich was falsch verstanden (wohl eher sehr warscheinlich^^) |
Re: kleine Frage zum screenshot machen
Delphi-Quellcode:
varscreen := TBitmap.Create;
|
Re: kleine Frage zum screenshot machen
und noch was: assign nachher und diese Zuweisung mit := bei Instanzen von Klassen ist immer problematisch, da man sich im klaren sein muss, dass man NUR die Pointer auf die Instanzen verschiebt, und es so vorkommen kann, dass plötzlich kein Pointer auf die eine oder andere Instanz zeigt und so Speicherlecks entstehen können.
Delphi-Quellcode:
Var
Varscreen:TBitmap; begin varscreen := TBitmap.Create; MakeScreenShot(Varscreen); Image1.Picture.Assign(Varscreen); end; |
Re: kleine Frage zum screenshot machen
Und nicht Image.Picture.Bitmap:=Varscreen; sondern
Image1.Picture.Bitmap.Assign(varscreen); Sonst weist du nur den Pointer zu und sobald du varscreen wieder freigibst, was du machen musst!!!!, dann ist auch kein bild mehr zu sehen. |
Re: kleine Frage zum screenshot machen
Müsste es eigentlich nicht
Delphi-Quellcode:
heißen? :gruebel:
procedure MakeScreenShot(var ATarget: TBitmap);
|
Re: kleine Frage zum screenshot machen
glaube nicht. (Auch nicht ganz sicher) ATarget ist ja eine Instanz einer Klasse und somit kann es mit const übergeben werden.
Gruß Alexander |
Re: kleine Frage zum screenshot machen
An cRayZo: Lies di mal das Durch:
![]() und hier gibt es noch viel mehr: ![]() Gruß Alexander |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz