Hola Heinrich:
Lo primero ten en cuenta que escribir todo en mayúsculas signfica chillar. Si entiendo bien tu pregunta, quieres que dada una fecha y teniendo en cuenta el día de la semana que le corresponde, obtener la fecha que le corresponde para el mes próximo una vez obtenida ésta, es decir sumándole 30 días, comprobamos si el día que le corresponde a dicha fecha es el mismo y sino lo incrementamos hasta hacerlo coincidir.
El ejemplo que te propongo solamente lo he hecho para el primer mes pero el resto sería tan facil como multriplicar 30 por el número de meses:
Para la prueba necesitas 2 DateTimePicker:
Código Delphi
[-]
procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
nDia:Integer;
begin
nDia:=DayOfWeek(DateTimePicker1.Date);DateTimePicker2.Date:=DateTimePicker1.date + 30;
While DayOfWeek(DateTimePicker2.Date) <> nDia do
begin
DateTimePicker2.Date:= DateTimePicker2.Date +1;
end;
end;
Me faltan menos de 3 horas para marchar de vacaciones así que es posible que no me conecte hasta dentro de unos días desde por lo que sino entiendes algo, será cualquiera de mis destacados compañeros foristas quién te lo explique.
Un Saludo.