Hola, parece que está claro,
Cuenta los BEGIN que hay en la función (8) y los END que has puesto (6), te faltan 2.
Prueba a indentar el código para meter los bloques begin-end unos dentro de otros para poder separarlos y tenerlos más claro visiblemente y no te ocurrirá este tipo de errores, que por otra parte es muy común en tipo de código como el que has puesto, con multitud de condiciones.
Ej:
Código Delphi
[-]
If ModuloDatos.TblComprobantes.FieldValues['Estado']<>'P' Then
begin m:=ModuloDatos.TblComprobantes.FieldValues['Cod_soc'];
If ModuloDatos.TblSocios.Locate('Cod_soc',m,[]) Then
begin
TxtSocio.Text:=m;
end;
n:=ModuloDatos.TblComprobantes.FieldValues['Cod_periodo'];
If ModuloDatos.TblPeriodos.Locate('Cod_periodo',n,[]) Then
begin
TxtPeriodo.Text:=n;
end;
TxtImporte.Text:=ModuloDatos.TblComprobantes.FieldValues['Importe'];
Confirmar.SetFocus;
end;
Espero te sirva.
Saludos