Bueno...
al final lo realice de otra forma... sin crear un StringList...
Código Delphi
[-]
Procedure TForm1.Sortear;
Var
Num_Registros : Integer;
sFin : Boolean;
begin
sFin := False;
Num_Registros := ADQ_Select.RecordCount;
Randomize;
While sFin = False Do Begin
sGanador.AsInteger := RandomRange(1,Num_Registros);
With Premiados Do
Begin
If Not Locate('Nro',sGanador.Text,[]) Then Begin
ADQ_Select.Locate('Nro',sGanador.Text,[]);
Premiados.Append;
Premiados.FieldByName('Nro').AsString := IntToStr(ADQ_Select['Nro']);
Premiados.FieldByName('Rut').AsString := ADQ_Select['Rut'];
Premiados.FieldByName('Nombre').AsString := Concat(ADQ_Select['Nombres'],' ',ADQ_Select['Apellidos']);
Premiados.FieldByName('Contrato').AsInteger := ADQ_Select['Contrato'];
Premiados.FieldByName('Abono').AsInteger := ADQ_Select['Abono'];
Premiados.FieldByName('Ubicacion').AsString := ADQ_Select['Ubicacion'];
Premiados.Post;
sFin := True;
End;
End;
End;
end;
bueno, y el codigo anterior lo llamo así
Código Delphi
[-]
procedure TForm1.BitBtn4Click(Sender: TObject);
Var
i : Integer;
begin
For i:=1 to 300 Do
Begin
Sortear;
End;
end;
Bueno, el proceso en si se demora alrededor de 2 segundos en seleccionar los 300 numeros de un universo de 1505... así que quede más que satisfecho con el código...
maeyanes
tines toda la razón.. no di el código ni mensaje de error... creo que yo mismo me enviaré a leer la guia de estilo..
y como penitencia realizaré 1000000 de.. debo entregar codigo de error
Código Delphi
[-]For i:=1 to 1000000 Do
ShowMessage('Debo engregar el error completo, con código y mensaje de error... no volverá a pasar de nuevo');
Salu2