55 if-ov 50-krát za sekundu si CPU ani nevšimne.
Horšie je to s tými zbytočnými volaniami ColorToHTMLHex - každý riadok by bol efektívnejši, keby bol zapísaný nejako takto (v Delphi nerobím, môžu tam byť chyby):
if getpixel(c.handle, 613, 442) = $FF0000 then n := 1;
Ďalšia vec je, že by si mal používať aj else, pretože takto porovnávaš niektoré pixle úplne zbytočne, čím strácaš rýchlosť.Úplne najväčším zdržaním je volanie metódy getpixel. Normálne sa to robí tak, že si skopíruješ časť obrazovky do pamäte a zisťovanie farieb pixlov robíš v pamäti. Na to existuje v GDI metóda BitBlt, takže skús pogoogliť, či sa dá BitBlt volať nejako z Delphi.