Mirándolo nuevamente, creo que esta es la solución:
Código Delphi
[-]
function MyWeekOfTheMonth(Date: TDate): Integer
var
Meses : integer;
FechaInicial : TDateTime;
FechaAuxiliar : TDateTime;
begin
FechaInicial := StrToDate('01/01/1900');
Meses := MonthsBetween(FechaInicial , Date);
FechaAuxiliar := IncMonth(FechaInicial ,Meses);
result := WeekOf(Date) - WheekOf(FechaAuxiliar) + 1;
end;