valSistemasDelphi Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 Veio aqui pedir a ajuda de vocês.. Estou fazendo um projeto que funciona assim: 5.. Shapes... 5... Timers 1.. SpeedButton Resolução: Código dentro do Speedbutton!! timer1.Enabled:=true; Shape1.Brush.Color:=clgreen; Código dentro do Timer Shape1.Brush.Color:=clred; Funciona tipo semáforo! Progresso ligado = Verde e Depois Desligado = Vermelho... Isso tudo no tempo que eu determinar no Timer. A minha dificuldade e porque Coloquei um progressBar e quero que apareça no componente. de 1 a 100%.. Conforme eu determinar no timer. Espero ter sido claro! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 O que voce quer é um temporizador .. certo ? veja esse exemplo, e faça as modificações para o seu uso: Obs: No botão voce vai ligar e desligar o timer ( deixe o timer em Enabled = false ) No trackbar, voce controla o tempo que voce quer que ele funcione O label serve para mostar o tempo que voce escolher Proriedade Max = 1000 ( trackBar ) 0 - 1000 = vai de zero a um segundo ( voce pode alterar esse tempo ) Ao clicar no botão o shape fica verde e ao final do tempo ele fica vermelho o edit vai mostrar o numero da posição do ponteiro no ProgressBar que vai até 100 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Timer1: TTimer; Button1: TButton; Edit1: TEdit; Shape1: TShape; ProgressBar1: TProgressBar; TrackBar1: TTrackBar; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; on_off : integer = 0; cont : integer =0; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // ligar e desligar o timer inc(on_off); if on_off = 1 then begin Timer1.Enabled := true; Shape1.Brush.Color:=clgreen; Timer1.Interval := TrackBar1.Position; end else begin on_off := 0; Timer1.Enabled := false; Shape1.Brush.Color:=clred; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin inc(cont); edit1.Text := inttostr(cont); ProgressBar1.Position := cont; if cont > 99 then begin cont := 0; Shape1.Brush.Color:=clred; Timer1.Enabled := false; end; end; procedure TForm1.TrackBar1Change(Sender: TObject); begin Label1.Caption := Inttostr(TrackBar1.Position); end; end. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 valSistemasDelphi Postado Dezembro 30, 2019 Autor Denunciar Share Postado Dezembro 30, 2019 (editado) Jonas, Muito Obrigado! Legal pra caramba.... Como eu altero esse tempo, porque clica em iniciar ele percorre 100 bem rapido.. Desliguei o enabled do Timer, agora ao clicar não faz mais nada, só muda a cor do shape. Não compreendi muito bem a lógica do codigo, como que eu sei que vai estar Desligado ou ligado.. Pela variável... On_off ? Editado Dezembro 30, 2019 por valSistemasDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 Como eu altero esse tempo ? Basta voce modificar a prorpiedade Max do TrackBar para 2000, 3000, 4000...etc voce tem que mover o trackbar de posição para que ele tenha outros valores Desliguei o enabled do Timer, agora ao clicar não faz mais nada, só muda a cor do shape Voce tem que deixar a propriedade Enabled do Timer = False, antes de executar o programa O código como está funciona perfeitamente. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 valSistemasDelphi Postado Dezembro 30, 2019 Autor Denunciar Share Postado Dezembro 30, 2019 (editado) Esse On_Off seria o que exatamente ? Tipo como que eu sei que ele e = 1 e o outro := 0; Não entendi Editado Dezembro 30, 2019 por valSistemasDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 Não compreendi muito bem a lógica do codigo, como que eu sei que vai estar Desligado ou ligado.. Pela variável... On_off ? sim ... se voce notar tem um contador // ligar e desligar o timer inc(on_off); cada vez que voce clica no botão, o contador ( on_off -- variavel inteira ) é somado de 1 ... dependendo do valor, é uma coisa ou outra ( ligado ou deslgado ) abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 valSistemasDelphi Postado Dezembro 30, 2019 Autor Denunciar Share Postado Dezembro 30, 2019 Assim, entendi... caso eu clique, ele entende que e 1, Ai no caso se eu não clicar ele fica como 0! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 // ligar e desligar o timer inc(on_off); if on_off = 1 then begin /// LIGADO Timer1.Enabled := true; Shape1.Brush.Color:=clgreen; Timer1.Interval := TrackBar1.Position; end else begin // DESLIGADO on_off := 0; Timer1.Enabled := false; Shape1.Brush.Color:=clred; end; quando voce clica uma vez, o contador soma de 1, então a variavel on-off fica com o valor de 1 e executa o codigo relacionado , ou seja ligado. quando voce clica novamente, o contador soma + 1 novamente e passa a valer 2 Se on-off não é 1 ( um ) e sim 2 ( dois ) então ele executa o else, e passa a valer 0 ( zero ) novamente e executa desligado e assim o ciclo se repete a cada vez que voce clicar no botão . abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 valSistemasDelphi Postado Dezembro 30, 2019 Autor Denunciar Share Postado Dezembro 30, 2019 (editado) Entendi agora, Show de Bola... Valeu jonas.. Estou em alguns grupos aqui de Delphi no Whatsapp, mais tem muita gente com nariz empinado ninguém quer ajudar ninguém! Lembrei que sempre que postava dúvidas no fórum eu era atendido... Muito Obrigado, Esse Fórum e SHOW! Aproveitando Conhece o Componente Tinject para Delphi? Com ele se acessa o Whatsapp, com Delphi! Se quiser saber algo a respeito me chama no Whatsapp, (66)98414-6846.. Conta comercial Valeu ai! Editado Dezembro 30, 2019 por valSistemasDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2019 Denunciar Share Postado Dezembro 30, 2019 Sim ... já tinha lido sobre ele http://mikelustosa.kpages.online/tinject Download do componente https://github.com/mikelustosa/Projeto-TInject/blob/master/TInjectInstall.exe abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
valSistemasDelphi
Veio aqui pedir a ajuda de vocês.. Estou fazendo um projeto que funciona assim:
5.. Shapes...
5... Timers
1.. SpeedButton
Resolução:
Código dentro do Speedbutton!!
timer1.Enabled:=true;
Shape1.Brush.Color:=clgreen;
Código dentro do Timer
Shape1.Brush.Color:=clred;
Funciona tipo semáforo! Progresso ligado = Verde e Depois Desligado = Vermelho... Isso tudo no tempo que eu determinar no Timer.
A minha dificuldade e porque Coloquei um progressBar e quero que apareça no componente. de 1 a 100%.. Conforme eu determinar no timer.
Espero ter sido claro!
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.