Hola de nuevo, ahora sí está claro.
Mirá, se me ocurre esto:
Código:
procedure TForm1.PonerFechas(AYear: string);
{$J+}
const
DiasMes: array[1..12] of string=('31','28','31','30','31','30',
'31','31','30','31','30','31');
Mes: array[1..12] of string=('01','02','03','04','05','06','07',
'08','09','10','11','12');
{$J-}
var
i,Anio: Integer;
FeStr: string;
BM: TBookMarkStr;
d15: Boolean;
begin
Anio:= StrToInt(AYear);
if ((Anio mod 4 = 0)and(Anio mod 100 <> 0))or(Anio mod 400 = 0) then
DiasMes[2]:= '29';
d15:= False;
// al último para agregar, guardar 1er fecha
with tbPrueba do
begin
Last;
Append;
FieldByName('FECHA').Value:= '15/' + Mes[1] + '/' +AYear;
Post;
BM:= Bookmark; // guardar posicion para ingresar
for i:= 2 to 12 do
begin
Append;
d15:= not d15;
if d15 then
FeStr:= '15'
else
FeStr:= DiasMes[i];
FieldByName('FECHA').Value:= FeStr + '/' + Mes[i] + '/' +AYear;
Post;
end;
Bookmark:= BM; // en posición de ingreso
end;
end;
El código crea las fechas en el DBGrid (en realidad en el DataSet), respetando
los días 29 de enero de los años bisiestos, por supuesto deberá existir el campo 'FECHA'
en el DataSet.
Saludos.