Cada vez que entras al procedure se crea la variable 'i' y al salir del procedure se elimina. Por eso siempre valdrá cero y se incrementará a 1.
Debes crear la variable globalmente.
Código Delphi
[-]
private
i : integer;
function ComprobarDatos:Boolean;
procedure getEjerciciosEmpresa( iEmpresa:Integer );
procedure getConfiguracionEjercicio;
public
Y procura darle un valor para empezar, por ejemplo, al entrar en el form.
Código Delphi
[-]
procedure TFempresas.FormShow(Sender: TObject);
begin
inherited;
i := 0;
end;
Entonce tu procedure debe quedar así:
Código Delphi
[-]
procedure contador
begin
inc(i);
end;