uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Clipbrd, ComCtrls, shellapi, IdHTTP, IdSMTP, IdMessage,
Sockets;
var
error : int64;
i, j : integer;
hayMovimiento : boolean;
begin
if idResultado <> 0 then
begin
try
SendMessage(idResultado, WM_CAP_EDIT_COPY, 0, 0);
imagenActual.Assign(imagenAnterior);
imagenAnterior.LoadFromClipBoardFormat(cf_BitMap,
ClipBoard.GetAsHandle(cf_Bitmap), 0);
error := 0;
for i := 0 to imagenActual.Width do
begin
for j:= 0 to imagenActual.Height do
begin
error := error + abs(imagenActual.Canvas.Pixels[i, j] -
imagenAnterior.Canvas.Pixels[i, j]);
end;
end;
txtError.Text := FloatToStr(trunc(error / 20000000)/100);
except
bDetenerClick(Self);
raise;
end;
hayMovimiento := tbSensibilidad.Position < StrToFloat(txtError.Text);
if (hayMovimiento and Capturar) then
begin
imagenAnterior.SaveToFile(ExtractFilePath(txtUbicacionImg.Text) +
IntToStr(Contador) + ExtractFileName(txtUbicacionImg.Text));
imagenActual.SaveToFile(ExtractFilePath(txtUbicacionImg.Text) +
IntToStr(Contador + 1) + ExtractFileName(txtUbicacionImg.Text));
Contador := Contador + 2;
end;
if hayMovimiento then
begin
txtError.Color := clRed;
TcpClient1.Active:= true;
TcpClient1.Active:= false;
end
else
txtError.Color := clWhite;
end
else
begin
bDetenerClick(Self);
end;
end;