bueno ahora lo que hice fue sacarlo mas o menos asi lo que no se es como cambiar de año y que considere de enero a la fecha del calendario jejejejeje.
Código Delphi
[-]function tfrmrecibos.MesesANombres(D1, D2: TDate): TStrings;
var
i,ii, Mes, TotMeses,TotAnios: Integer;
Anio,AnioIni,MesIni,DiaIni,AnioFin,MesFin,DiaFin: word;
begin
DecodeDate(D1,AnioIni,MesIni,DiaIni);
D1:= EncodeDate(AnioIni , MesIni,1); DecodeDate(D2,AnioFin,MesFin,DiaFin);
D2:= EncodeDate(AnioFin,MesFin, daysInMonth(D2)); Result:= TStringList.Create;
TotMeses:= MonthsBetween(D1, D2);
TotAnios:=YearsBetween(D1,D2);
Mes:= MonthOf(D1);
for i:=AnioIni to AnioFin do
begin
Anio:=i;
DecodeDate(D1,Anio,MesIni,DiaIni);
DecodeDate(D2,Anio,MesFin,DiaFin);
D1:= EncodeDate(i , MesIni,1); D2:= EncodeDate(i,MesFin, daysInMonth(D2)); TotMeses:= MonthsBetween(D1, D2);
Result.Add(IntTostr(i)+ ' - '+ IntToStr(TotMeses)); end;
end;