Saludos.
Yo hice algo parecido de la siguiente forma
Código Delphi
[-]
function buscacodigo(codigo:integer;Lista:Array [1..n] of integer):integer;
var contador : integer
begin
contador:=0;
while not ((Lista[contador]=codigo) or (contador>n)) do
begin
if lista[contador]=codigo then result:= contador;
inc(contador);
end;
end;
Bueno realmente había declarado anteriormente un tipo array y después le pasaba a la función la variable de dicho tipo... esto es
Código Delphi
[-]
type
TLista = array [1..250] of integer;
var Lista : TLista;
A continuación pasaba a la función los 2 parámetros y finalmente el resultado de la función es el que buscas.
Con esta función te evitas pasar todo el array, ya que en el mismo momento en el que lo encuentre saldrá del bucle.
Espero que te sirva.
Saludos.