добрый день! у меня такой вопрос

некоторые из вас знают игру линейку и тамошнюю рыбалку.
задался интересом написать миниатюрную авторыбалку, и пару лет назад даже написал её, однако время убило мой винт а с ним и то что я написал. пишу заново

так вот, проблема в следующем. не могу вспомнить как быстро получить серию пикселей с экрана. раньше я делал это так:
Код:
function DesktopColor(const X, Y: Integer): TColor;
var
c: TCanvas;
begin
c := TCanvas.Create;
try
c.Handle := GetWindowDC(GetDesktopWindow);
Result := GetPixel(c.Handle, X, Y);
finally
c.Free;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
col:tcolor;
x,y,i:intrger;
begin
x:=panel1.left;// x и y задаются в другом месте
y:=panel1.top;// сюда просто для понятности, кто они и откуда.
for i:=1 to panel1.width do //panel1.width равно примерно 223 пикселя
Col := DesktopColor(X,Y);
// Col := GetPixel(c.Handle, X, Y); такой вариант тож длится долго.
//тут дальше считаем пиксели определенного цвета и соответственно
//эмулируем нажатие кнопок.
end;
так вот, раньше это делалось каждые 100 милисекунд по таймеру, сейчас же даже 1 прогон (считывание 223 пикселей) занимает примерно 4 секунды. вроде делал то же самое, но видимо как то по другому... так же возможно проблема в семёрке, раньше стояла XP... никто не подскажет как быстро получить и сосчитать серию пикселей?
