ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

limitador de tempo para login com progressbar [[RESOLVIDO]]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
brunokkk88
Novato
Novato


Registrado: Quinta-Feira, 30 de Junho de 2011
Mensagens: 58

MensagemEnviada: Qua Jul 31, 2013 4:59 pm    Assunto: limitador de tempo para login com progressbar [[RESOLVIDO]] Responder com Citação

Boa tarde pessoal, estou querendo colocar um limitador de tempo para login com progressbar no meu sistema, porém não estou conseguindo, tentei fazer usando for só que não deu certo alguém poderia me dar uma ideia de como fazer?


Aeee galera consegui resolver o questionamento acima de uma forma fácil, o que eu fiz foi o seguinte.
Criei uma variavel global "StatusLogin" no evento active do formulário essa variavél recebe o valor 'OFF'.
Statuslogin:='OFF';
depois no componente Timer coloquei a seguinte rotina:

If statuslogin = 'OFF' then
begin
ProgressBar1.Max:=10;
If ProgressBar1.Position < ProgressBar1.Max then
ProgressBar1.Position:=ProgressBar1.Position+1
else
close;
end
else


E no botão validar login, caso dados fornecidos estejam corretos a variavel "StatusLogin" recebe o valor 'ON'
statuslogin:='ON';

No meu caso funcional perfeitamente.


Editado pela última vez por brunokkk88 em Sex Ago 02, 2013 9:25 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CesarRocha
Mestre
Mestre


Registrado: Segunda-Feira, 30 de Mai de 2011
Mensagens: 794
Localização: São Paulo - SP

MensagemEnviada: Qua Jul 31, 2013 5:13 pm    Assunto: Responder com Citação

For não vai funcionar, pois ira "congelar" a sua aplicação. Você pode achar por ai sugestões recomendando usar Application.ProcessMessage, contudo não recomendo tal abordagem.

Soluções possíveis:

+ Usar um TTimer para controlar o tempo, a cada segundo passado nele você incremente o TProgressBar;
+ Criar uma TThread para manipular a passagem do tempo;
+ Criar um novo componente que contenha tal função internamente.

~bye
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
brunokkk88
Novato
Novato


Registrado: Quinta-Feira, 30 de Junho de 2011
Mensagens: 58

MensagemEnviada: Qua Jul 31, 2013 5:19 pm    Assunto: Responder com Citação

CesarRocha escreveu:
For não vai funcionar, pois ira "congelar" a sua aplicação. Você pode achar por ai sugestões recomendando usar Application.ProcessMessage, contudo não recomendo tal abordagem.

Soluções possíveis:

+ Usar um TTimer para controlar o tempo, a cada segundo passado nele você incremente o TProgressBar;
+ Criar uma TThread para manipular a passagem do tempo;
+ Criar um novo componente que contenha tal função internamente.

~bye


Exatamente isso que acontece ele congela, ahh valew pela dica irei tentar fazer desta forma!!!!

vlw obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emanoelts
Novato
Novato


Registrado: Sexta-Feira, 6 de Novembro de 2009
Mensagens: 82

MensagemEnviada: Qua Jul 31, 2013 5:33 pm    Assunto: Responder com Citação

Olha fiz um exemplo bem simples de como usar o progressbar com um timer. Embora em meus aplicativos não coloco limite de tempo para login e sim limite de tentativas com login ou senha errados. Se o usuário digitar a senha ou login errados 'n' vezes fecho o aplicativo.

No exemplo você precisa de um Form, com um Timer, um Button e um ProgresBar:

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls;

type
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
aux: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ProgressBar1.Max := 5;
Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := aux;
if aux > 5 then
begin
ProgressBar1.Position := 0;
aux := 0;
Timer1.Enabled := false;
end
else
Inc(aux);
end;

end
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB