
Miren tengo el siguiente problemon en Delphi:
Lo que quiero: Un simulador de Sorteo teniendo una base de datos plana en Access, en mi formulario tengo un Boton donde me diga SORTEAR (Habilito el timer puesto mas antes en falso) y luego PARAR (Deshabilito el timer) haciendo el doble clic en el Timer tengo el siguiente Codigo:
procedure TFPrincipal.Timer1Timer(Sender: TObject);
var ContadorReg,PUNTERO:integer;
begin
Randomize; //empieza a funcionar los numeros aleatorios
ContadorReg:=dm1.Tagenda.RecordCount; //Cuento la cantidad de registros que tengo.
Puntero:=round(random(ContadorReg)+1); //Genero un # aleatorio
TStringGrid(DBGrid1).Row:=puntero; //Accedo a una fila determinado por el puntero
SetFocus;//Me voy alli... enfoco
//Para que sea consecutivo
{if i=ContadorReg then
Begin
dm1.Tagenda.Next;
DM1.Tagenda.First;
i:=0;
End
else
Begin
i:=i+1;
dm1.Tagenda.Next;
End;
Label1.Caption:='No Regs:'+inttostr(ContadorReg)+' Selector:'+'en Proceso';}
end;
Teniengo este procedimiento me corre normalmente para unos 2 a 7 registros máximo, mayor a esta me pone un error de index fuera de rango o algo por ahi, por favor amigos. ¿Porque el error esta? ¿Habrá otra forma de hacer este proceso que quiero? ¿Cual serìa mi forma de acceder a una fila(registro) específica de me DBGrid?
Por fa... amigos estoy ansioso de tener respuestas a estas mis dudas, que tal vez es muy novato...