rendered paste bodyfunction FindBitmap(c: TBitmap; var x, y: Integer; xn, yn, xs, ys, Tol: Integer): Boolean;
var
cx, cy, cx2, cy2, i: Integer;
Bmp: TBitmap;
BrokeMe: Boolean;
Line, cLine: PRGB32Array;
Size: TRect;
begin
i := 0;
Result:= False;
BrokeMe:= False;
bmp:= TBitmap.Create;
GetWindowRect(Window, Size);
bmp.Width:= Size.Right - Size.Left;
bmp.Height:= Size.Bottom - Size.Top;
BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height,
GetWindowDC(Window), 0, 0, SRCCOPY);
bmp.PixelFormat:= pf32bit;
cLine:= c.ScanLine[0];
for cy:= yn to ys do
begin
Line:= Bmp.ScanLine[cy];
BrokeMe:= False;
for cx:= xn to xs do
if(SimilarColors(RGB(Line[cx].R, Line[cx].G, Line[cx].B), RGB(cLine[0].R, cLine[0].G, cLine[0].B), Tol))then
begin
for cy2:= cy to cy + c.Height - 1 do
begin
cLine:= c.ScanLine[cy2 - cy];
Line:= Bmp.ScanLine[cy2];
for cx2:= cx to cx + c.Width - 1 do
if(SimilarColors(RGB(Line[cx2].R, Line[cx2].G, Line[cx2].B), RGB(cLine[cx2-cx].R, cLine[cx2-cx].G, cLine[cx2-cx].B), Tol))then
begin
i:= i + 1;
if(i >= c.Width * c.Height)then
begin
x:= cx;
y:= cy;
Result:= True;
Exit;
end;
end else
begin
i:= 0;
BrokeMe:= True;
Break;
end;
if(BrokeMe)then Break;
end;
end;
end;
end;