Как да намерите компонент във формуляр, знаейки го отгоре и отляво

Във формуляра има много TSpeedButtons и всеки от тях има различен Top и Left.
(и възможно ли е) да се създаде функция от типа TSpeedButton, така че тя да върне TSpeedButton, съответстваща на неговия Top и Left минал.
Например:
GetElement (отгоре, отляво: цяло число): TSpeedButton

преминавате през всички компоненти на формуляра и търсите кой ви е необходим, например:

за i: = 0 до form1.controls.count-1 do
ако (form1.controls [i] е TSpeedButton) тогава
if ((form1.controls [i] като TSpeedButton) .Left = Left) и
((form1.controls [i] като TSpeedButton) .Left = Left) тогава
започнете
Резултат: = form1.controls [i];
изход;
край;

Не помня точно, нито контроли, нито компоненти

за i: = 0 до form1.controls.count-1 do
ако (form1.controls [i] е TSpeedButton) тогава
if ((form1.controls [i] като TSpeedButton) .Left = Left) и
((form1.controls [i] като TSpeedButton). Отгоре = отгоре) тогава
започнете
Резултат: = form1.controls [i];
изход;
край;