RE:como se crea una funcion
1) Declaración de la función: En la cláusula Private, Public o Published (después de cualquier variable que hubiese).
function MiFuncion (Valor1, Valor2: integer; Valor3: Bool):String;
En este caso, MiFunción tiene como parámetro de entrada dos integer y un bool y devuelve un String.
2) Implementación de la función:
function TForm1.MiFuncion (Valor1, Valor2: integer; Valor3: Bool):String;
var
UnaVariable: String;
begin
{...El código va aquí...}
Result:='La String que devuelve se almacena en Result'; {Vale para variabes de cualquier tipo}
end;
3) Llamadas a la función
procedure Button1Click (Sender: TObject);
var
MiString: String;
begin
MiString:=MiFuncion (100, 2, true);
end;
Espero haber sido claro. Suerte.