Puedes usar un Timer pero deberás declarar el arreglo fuera del botón, por ejemplo, como variable del formulario:
Código Delphi
[-]
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
Personas: array of String; Actual: Integer; end
En Button1Click llenas el arreglo y activas el Timer:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
SetLength(Personas, 4);
Personas[0] := 'Luis';
Personas[1] := 'Juan';
Personas[2] := 'Manuel';
Personas[3] := 'José';
Actual := 0;
Timer1.Enabled := true;
end;
En el evento OnTimer actualizas la etiqueta:
Código Delphi
[-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := Personas[Actual];
Actual := (Actual + 1) mod Length(Personas);
end;
el
mod es para que al llegar a la última persona (3 en este caso), el índice se regrese a 0.
La velocidad con la que aparezcan los nombres la controlas con la propiedad Interval del Timer (expresada en milisegundos). Así, si la pones en 500, el nombre cambiará cada medio segundo.
// Saludos