Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Realizar Varias tareas en un solo boton (https://www.clubdelphi.com/foros/showthread.php?t=67593)

ronald_tro 24-04-2010 23:33:29

Realizar Varias tareas en un solo boton
 
Hola amigos de nuevo por aca, pasa lo siguiente, tengo un boton el cual deseo que al darle un click aparezcan unas letras por tiempo cada no se 5 segundos en un txt, y por ejemplo al darle otro click que aparezcan otras, se puede? y la forma de como hacerlo, muchas gracias por su ayuda, un saludo.

Caral 25-04-2010 02:10:10

Hola
Lo que se me ocurre es:
1- colocar una variable para contar cuantas veces se presiona el botón.
2- con un TTimer hacer el código que buscas, tomando en cuenta si se presiono el botón en un numero determinado.
3- Cancelar o regresar a cero el conteo cuando se requiera.
Me parece que seria la manera mas sencilla de hacerlo.
Saludos

ronald_tro 25-04-2010 04:57:14

Listo ya hize lo primero, ahora me falta eso de la variable, osea simular dos clics si alguien sabe gracias.

Lord Delfos 25-04-2010 07:25:47

Bueno, yo creo que la idea de Caral iría más o menos así:

Código Delphi [-]
var Tarea: Integer;

procedure TForm1.btn1Click(Sender: TObject);
begin
  if not tmr1.Enabled then
    begin
    Tarea:= 1;
    tmr1.Enabled:= True;
    end;

  if Tarea = 1 then
    Tarea:= 2
  else
    Tarea:= 1;
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
  if Tarea = 1 then
    HagoLaTareaUno
  else
    HagoLaTareaDos;
end;

Creo que es lo más sencillo de hacer.

Saludos.

ronald_tro 25-04-2010 10:15:58

Amigos perdon por molestar de nuevo, pasa que, habia hecho segun yo lo de segun el efecto "maquina de escribir" pero, tuve unos problemas y al final no salió, ahora ya pude hacer que al 5 click por ejemplo me mande un mensaje, alguien sabe como hacer aparecer letra por letra en un textbox cada tiempo?
p.d. si alguien sabe como se haría en vb.net, espero no molestarlos, un saludo.

cloayza 26-04-2010 18:24:41

A ver si esto te sirve...


Código Delphi [-]
var
  Form1: TForm1;

implementation

{$R *.DFM}

{ Debes colocar los siguientes objetos en tu form
label1
Button1
Button2
Timer1
}

Const
   FText:Array[1..5] Of String=('Primer Texto','Segundo Texto','Tercer Texto','Cuarto Texto','Quinto Texto');

procedure TForm1.Button1Click(Sender: TObject);
begin
     Button1.Tag:=Button1.Tag+1;

     If Button1.Tag>5 Then
        Button1.Tag:=1;

     If Not Timer1.Enabled Then
        Timer1.enabled:=True;

     Timer1.Tag:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
     Timer1.Tag:=Timer1.Tag+1;

     If Timer1.Tag>Length(FText[Button1.Tag]) Then Timer1.Tag:=1;
     label1.caption:=Copy(FText[Button1.Tag], 1, Timer1.Tag);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     Timer1.Enabled:=False;
end;


La franja horaria es GMT +2. Ahora son las 06:17:59.

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