Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Pixelparty - oder das irre Projekt *seufz*

  Alt 7. Dez 2005, 17:32
Hier eine Screenshot-Funktion:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i,i2:integer;
  b2:tbitmap;
  r:trect;
begin
  if not savedialog1.Execute then
    application.Terminate;
  b:=tbitmap.Create;
  b.Width:=screen.Width;
  b.Height:=screen.height;
  b.Canvas.handle:=GetWindowDC(GetDesktopWindow);
  b2:=tbitmap.Create;
  b2.Width:=screen.Width-1;
  b2.Height:=screen.Height-1;
  sleep(100);
  b2.Canvas.CopyRect(screen.desktoprect,b.Canvas,screen.desktoprect);
  if savedialog1.filterindex=1 then
    b2.SaveToFile(savedialog1.filename) else
  begin
    j:=tjpegimage.create;
    form2:=tform2.Create(application);
    form2.showmodal;
    j.assign(b2);
    j.savetofile(savedialog1.FileName);
    j.free;
  end;
  application.terminate;
  b.free;
  b2.free;
end;
Hab ich mal geschrieben.

Kannst du ja einfach abwandeln. Statt screen.desktoprect nimmst du den zu beobachtenden Bildschirmbereich und statt der Speicherungsprozedur schreibst du eine Vergleichsprozedur.
Delphi-Quellcode:
var
  i,i2:integer;
  b,b2:tbitmap;
  r,zubeobachtenderbereich:trect;
begin
  zubeobachtenderbereich.left:=...;

  b:=tbitmap.Create;
  b.Width:=screen.Width;
  b.Height:=screen.height;
  b.Canvas.handle:=GetWindowDC(GetDesktopWindow);
  b2:=tbitmap.Create;
  b2.Width:=screen.Width-1;
  b2.Height:=screen.Height-1;
  sleep(100);
  b2.Canvas.CopyRect(screen.desktoprect,b.Canvas,zubeobachtenderbereich);
  //Hier BMPs vergleichen
  b.free;
  b2.free;
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat