Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2014
UsuarioBaja123 UsuarioBaja123 is offline
Miembro
 
Registrado: abr 2014
Posts: 17
Poder: 0
UsuarioBaja123 Va por buen camino
Question Crear un temporizador para botón

Hola, gracias a todos los del Club Delphi que resuelven mis dudas. Bueno, al grano:

Necesito crear un temporizador que se active cuando pulse un botón y me cuente cuantos segundos estoy pulsando el botón hasta que lo suelte y me lo guarde en una variable con el tiempo que he estado pulsándolo. (no tiene por qué ser segundos)

Gracias a todos los que me contesten.
Responder Con Cita
  #2  
Antiguo 02-04-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Qué parte llevas hecha?
¿En qué parte tienes problemas?
¿Cuántos puntos te dan por el ejercicio?
Responder Con Cita
  #3  
Antiguo 02-04-2014
UsuarioBaja123 UsuarioBaja123 is offline
Miembro
 
Registrado: abr 2014
Posts: 17
Poder: 0
UsuarioBaja123 Va por buen camino
Nada, ya encontré yo solo la manera de hacerlo. ¿Si quiero compartirlo lo escribo aquí o lo pongo en trucos?
Responder Con Cita
  #4  
Antiguo 02-04-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aquí, por favor
Responder Con Cita
  #5  
Antiguo 02-04-2014
UsuarioBaja123 UsuarioBaja123 is offline
Miembro
 
Registrado: abr 2014
Posts: 17
Poder: 0
UsuarioBaja123 Va por buen camino
Pues sencillamente añades un TTimer y una variable:
Código Delphi [-]
var
valueduration : integer;
begin
valueduration := valueduration +1
end;

De esta manera cada vez que en el Timer pasen los 1000 (1 seg.) se sumara a la variable 1.

Mi problema es que no se hacer una función cuando el botón está o no pulsado:

Código Delphi [-]
var
valueduration : integer;
begin
if Button1.OnClick true
then begin
valueduration := valueduration +1
end;
if Button1.OnClick false
then begin
Text1.Text := valueduration;
end;

¿Qué estoy haciendo mal?

Gracias.
Responder Con Cita
  #6  
Antiguo 02-04-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Decías que querías controlar cuánto tiempo está pulsado el botón, ¿eso quiere decir que cuente el tiempo que lo pulsas hasta que lo sueltas? ¿o quieres decir el tiempo entre que lo pulsas una vez y lo vuelves a pulsar otra vez?
Responder Con Cita
  #7  
Antiguo 02-04-2014
UsuarioBaja123 UsuarioBaja123 is offline
Miembro
 
Registrado: abr 2014
Posts: 17
Poder: 0
UsuarioBaja123 Va por buen camino
Que calcule el tiempo entre que lo pulse y lo suelte. Y si no se puede hacer con el botón que sea con presionar cualquier tecla y la suelte.
Responder Con Cita
  #8  
Antiguo 02-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ZaneMS Ver Mensaje
Que calcule el tiempo entre que lo pulse y lo suelte. Y si no se puede hacer con el botón que sea con presionar cualquier tecla y la suelte.
Hola ZaneMS.

Con el mouse:
Código Delphi [-]
...
implementation

var
 Frequency, Start, Stop: Int64;

procedure TForm1.FormCreate(Sender: TObject);
begin
  QueryPerformanceFrequency(Frequency);
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  QueryPerformanceCounter(Start);
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  QueryPerformanceCounter(Stop);
  ShowMessage(FormatFloat('0,',(Stop-Start)* 1000000 div Frequency) + ' µs.');
end;
...
Para el teclado usa los eventos OnKeyDown y OnKeyUp.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 03-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ZaneMS,

Cita:
Empezado por ZaneMS
...Necesito crear un temporizador que se active cuando pulse un botón y me cuente cuantos segundos estoy pulsando el botón hasta que lo suelte y me lo guarde en una variable con el tiempo que he estado pulsándolo (no tiene por qué ser segundos)...
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Frequency, Start, Stop: Int64;

implementation

{$R *.dfm}

// Inicio de Conteo de Tiempo (Pulsa el botón del Mouse)
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   QueryPerformanceFrequency(Frequency);
   QueryPerformanceCounter(Start);
end;

// Fin de Conteo de Tiempo (Libera el botón del Mouse)
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

var
   Hours, Minutes, Seconds, Milliseconds : Int64;
   TotalTime : TDateTime;
   TimeLapse : String;

begin

   QueryPerformanceCounter(Stop);

   // Calculo del Tiempo Total del Proceso expresado en Milisegundos
   Milliseconds := (Stop-Start) * 1000 div Frequency;

   // Conversión de Milisegundos a Horas, Minutos, Segundos y el resto en Milisegundos
   Hours := Milliseconds div (1000*60*60);
   Minutes := Milliseconds mod (1000*60*60) div (1000*60);
   Seconds := Milliseconds mod (1000*60*60) mod (1000*60) div 1000;
   Milliseconds := Milliseconds mod (1000*60*60) mod (1000*60) mod 1000;

   // Conversión de las variables de tiempo a TDateTime
   TotalTime := EncodeTime(Hours,Minutes,Seconds,Milliseconds);

   // Formateo del tiempo calculado
   TimeLapse := 'El Tiempo de Pulsación fue : ';
   TimeLapse := TimeLapse + FormatDateTime('hh:nn:ss:zzz', TotalTime);

   // Visualización del Tiempo Trascurrido
   MessageDlg(TimeLapse,mtInformation,[mbOK],0);

end;

end.
El código anterior permite registrar el tiempo de pulsación del botón del Mouse en formato HH:MM:SS:ZZZ.

Te sugiero revisar también este link:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 03-04-2014 a las 00:17:11.
Responder Con Cita
  #10  
Antiguo 03-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ZaneMS.

Como te indican, este tema ya ha sido tratado con anterioridad en los foros y la web (es por eso que la guía de estilo aconseja las búsquedas).
Te pongo algunos viejos enlaces para que puedas ampliar el ámbito de uso de estas funciones API con Delphi:Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear botón por código mizzard C++ Builder 2 19-04-2011 13:28:20
crear un boton para modificar pronto7 SQL 3 21-06-2010 21:03:24
Temporizador Migpal Varios 4 12-09-2005 19:36:08
Quiero crear un Boton para guardar Juan Ramon Conexión con bases de datos 3 02-11-2004 07:33:05
Temporizador con asp.net mamen .NET 1 12-07-2004 18:45:31


La franja horaria es GMT +2. Ahora son las 00:24:45.


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
Copyright 1996-2007 Club Delphi