Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con arrays (https://www.clubdelphi.com/foros/showthread.php?t=32135)

chanex 26-05-2006 23:10:23

ayuda con arrays
 
Hola amigos estoy empezando con delphi, alguien podria ayudarme con lo siguiente:

procedure TForm1.Button1Click(Sender: TObject);
var
ar: Array[1..4] of String;
begin
ar[1] := 'Luis';
ar[2] := 'Juan';
ar[3] := 'Manuel';
ar[4] := 'Jose';

Como puedo hacer para mostrarlo en un TLabel y que se muestren uno por uno y desde el ar[1], hasta el ar[4], y otra vez del ar[1] al ar[4], y asi sucesivamente, alguien me puede sugerir algo?, gracias de antemano.

VIRU 26-05-2006 23:42:32

Que es lo que queires que sea tipo un cartel que cambia los nombres sucesivamente???

roman 27-05-2006 00:09:01

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; // arreglo de longitud variable
  Actual: Integer; // índice del elemento que toca mostrar
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];

  // Siguiente persona
  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

chanex 27-05-2006 00:22:44

Gracias Roman ya lo probe y es lo que necesitaba, una constulta mas, ¿pordria hacer lo mismo sin utlilizar el Ttimer?, que me puedes sugerir :)


La franja horaria es GMT +2. Ahora son las 18:14:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi