Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudação,
Bom Pessoal eu sou novo aqui, e estes dias comecei a fazer um programa que exibe imagens da tela, coloquei uma função, e um timer de um milésimo, e coloquei como referencia para as imagens as coordenadas do mouse, fica igual a lente do sistema operacional. Mas a memória RAM só vai acumulando até o pc desligar; Eu acho que estas imagens estão sendo guardas na memória, mas eu queria só a ultima imagem, o ultimo x,y do mouse. Vou deixar o código todo aqui para que vocês analisem, a memória vai acumulando gradativamente; Ou isso é normal mesmo, ela estabiliza? tem vários comandos para limpar a memória mas não parece dar certo. Desde ja agradeço a todos.
(Timage e um Tlabel para as coordenadas do mouse, Ttimer(1) )
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
dc:hdc;
cv:TCanvas;
ordX,ordY: integer;
psat: TPoint;implementation
{$R *.dfm}
function CapturaTela: TBitmap;
Begin
result:=TBitmap.Create;
result.Width:= 300;
result.height:=300;
dc:=getdc(0);
cv:=Tcanvas.create;
cv.handle:=dc;
result.canvas.copyrect(rect(0,0,screen.width,screen.height),cv,rect(ordX,ordY,screen.width,screen.height));
cv.free;
releasedc(0,dc);
end;
procedure TForm1.Timer1Timer(Sender: TObject); GetCursorPos(psat); // Pega a posição atual do mouse;
//Mostra os valores das coordenadas do mouse
label1.caption := IntToStr(psat.x) + ',' + IntToStr(psat.y);
ordX:= psat.x;
ordY:= psat.y;
image1.picture.assign(CapturaTela);
end;
end.
Carregando comentários...