AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi bild auf screenshot "legen"
Thema durchsuchen
Ansicht
Themen-Optionen

bild auf screenshot "legen"

Ein Thema von JWeis · begonnen am 7. Dez 2005 · letzter Beitrag vom 15. Dez 2005
Antwort Antwort
Benutzerbild von JWeis
JWeis

Registriert seit: 23. Aug 2005
Ort: Homburg
274 Beiträge
 
Delphi 7 Professional
 
#1

bild auf screenshot "legen"

  Alt 7. Dez 2005, 16:55
hi leude

ich hab son problem:

ich mach mit meinemprog nen screenshot und den lass ich dan auf meiner ganzen form zeigen.
Delphi-Quellcode:
function GetScreenShot: TBitmap;
var
  Desktop: HDC;
begin
  Result := TBitmap.Create;
  Desktop := GetDC(0);
  try
    try
      Result.PixelFormat := pf32bit;
      Result.Width := Screen.Width;
      Result.Height := Screen.Height;
      BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
      Result.Modified := True;
    finally
      ReleaseDC(0, Desktop);
    end;
  except
    Result.Free;
    Result := nil;
  end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.Picture.Bitmap := GetScreenShot;
end;
so nun will ich, wenn ich irgendwo draufklicke an der position dan ein bild auftaucht.
kan mir jemand helfen.??
Johannes
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: bild auf screenshot "legen"

  Alt 7. Dez 2005, 17:00
Du erzeugst ein Speicherleck, da du das von GetScreenshot erzeugte Bitmap nicht freigibst.
Andere Bitmaps kann man per Delphi-Referenz durchsuchenTCanvas.Draw auf die Canvas des Images kopieren.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von JWeis
JWeis

Registriert seit: 23. Aug 2005
Ort: Homburg
274 Beiträge
 
Delphi 7 Professional
 
#3

Re: bild auf screenshot "legen"

  Alt 8. Dez 2005, 08:31
danke mal vorerst ich muss mal testen.
Johannes
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet.
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#4

Re: bild auf screenshot "legen"

  Alt 14. Dez 2005, 13:20
Zitat von Khabarakh:
Du erzeugst ein Speicherleck, da du das von GetScreenshot erzeugte Bitmap nicht freigibst.
Doch DAS Ding gibt er frei (wenn das Image freigegeben wird), jedoch das Bitmap, das vor der Zuweisung mit dem Zeiger Image1.Picture.Bitmap adressiert werden konnte, ... tja, was damit ist, weiß nur der Compiler.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: bild auf screenshot "legen"

  Alt 14. Dez 2005, 13:58
Zitat von Cicaro:
Zitat von Khabarakh:
Du erzeugst ein Speicherleck, da du das von GetScreenshot erzeugte Bitmap nicht freigibst.
Doch DAS Ding gibt er frei (wenn das Image freigegeben wird), jedoch das Bitmap, das vor der Zuweisung mit dem Zeiger Image1.Picture.Bitmap adressiert werden konnte, ... tja, was damit ist, weiß nur der Compiler.
Nö.
Da du eine Enterprise-Version besitzt, kannst du selbst in die Sourcen gehen und dich davon überzeugen, dass fast überall in der VCL/RTL im Setter von Objekt-Properties nur Assign aufgerufen und der Pointer nicht verändert wird.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#6

Re: bild auf screenshot "legen"

  Alt 15. Dez 2005, 10:40
Zitat von Khabarakh:
Zitat von Cicaro:
Zitat von Khabarakh:
Du erzeugst ein Speicherleck, da du das von GetScreenshot erzeugte Bitmap nicht freigibst.
Doch DAS Ding gibt er frei (wenn das Image freigegeben wird), jedoch das Bitmap, das vor der Zuweisung mit dem Zeiger Image1.Picture.Bitmap adressiert werden konnte, ... tja, was damit ist, weiß nur der Compiler.
Nö.
Da du eine Enterprise-Version besitzt, kannst du selbst in die Sourcen gehen und dich davon überzeugen, dass fast überall in der VCL/RTL im Setter von Objekt-Properties nur Assign aufgerufen und der Pointer nicht verändert wird.
Naja , zumindest sind wir uns über das Speicherleck einig.
  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:17 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