Good day!
Something like that?
List := [login to view URL];
function SearchBitmap(bmMain, bmSub:TBitMap; var R:TRect):boolean;
type TIntArray = array [word] of integer;
PIntArray = ^TIntArray;
var p0, p1, p2:PIntArray;
x, y:integer;
x1, y1, w, w0, w1, k : integer;
b : boolean;
begin
result := true;
FillChar(R, sizeOf(R), 0);
[login to view URL]:=pf32bit;
[login to view URL]:=pf32bit;
w := [login to view URL];
w0 := [login to view URL]*sizeOf(integer);
w1 := [login to view URL]*sizeOf(integer);
p0 := [login to view URL][0];
p1 := [login to view URL][0];
for y := 0 to [login to view URL] - [login to view URL] do begin
for x := 0 to [login to view URL] - [login to view URL] do begin
b := true;
p2 := p1; k := 0;
for y1 := 0 to bmSub.Height-1 do begin
for x1 := 0 to [login to view URL] - 1 do begin
if p0[k+x+x1] <> p2[x1] then begin
b := false;
break;
end;
end;
if not b then break;
integer(p2) := integer(p2) - w1;
k := k - w;
end;
if b then begin
R := Rect(x, y, x+[login to view URL], y+[login to view URL]);
[login to view URL](R)
end;
end;
integer(p0) := integer(p0) - w0;
end;
result := false;
end;