Hercles Posted October 1, 2013 at 12:32 AM Report #526922 Posted October 1, 2013 at 12:32 AM Caros, tenho este código mas ele não satisfaz porque eu queria que ele começasse em 00:00:00:000 e fosse minuto por minuto ele esta pegando a hora atual... alguém pode me ajudar? procedure TForm1.Timer1Timer(Sender: TObject); var Hora, Min, Sec, MSec : Word; begin DecodeTime(Now, Hora, Min, Sec, MSec); Label1.Caption := FormatDateTime('hh:mm:ss',now)+ ':'+FormatFloat('000',MSec); end; procedure TForm1.IniciarClick(Sender: TObject); begin Timer1.Enabled := True; end; procedure TForm1.FormCreate(Sender: TObject); begin end; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := False; end; end.
nunopicado Posted October 1, 2013 at 07:57 AM Report #526927 Posted October 1, 2013 at 07:57 AM Estás a usar o Now, logo ele usa a hora actual. Para não teres de fazer mais contas, subtrai a hora actual ao teu cronómetro: 1º Esqueces as variáveis Word 2º Arranja uma variável global (ou melhor ainda, uma constante tipada) que te grave a hora inicial 3º Dentro do timer irás escrever a hora actual menos a hora inicial a) A hora inicial ser reposta sempre que o contador for posto a 0 Algo assim var HoraInicial:TDateTime; procedure TForm1.IniciarClick(Sender: TObject); begin HoraInicial := Now; Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := FormatDateTime('hh:mm:ss:zzz',Now-HoraInicial); end; "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted October 1, 2013 at 09:45 PM Author Report #527094 Posted October 1, 2013 at 09:45 PM fiz deu certo, vou pensar como mudar... pois o cronometro tem que esta zerado e começar a contar quando eu clicar no botão vou almoçar agora....
Hercles Posted October 3, 2013 at 01:00 AM Author Report #527336 Posted October 3, 2013 at 01:00 AM (edited) Pra resolver este problema fiz um seguinte: Criei uma variável global chamada comecar do tipo integer. Depois no procedure Tfrmrelogio.FormCreate(Sender: TObject); begin HoraInicial := Now; //trecho do codigo criei esta condição para o botão vou agora: procedure Tfrmrelogio.btnagoraClick(Sender: TObject); begin comecar:=1; HoraInicial := Now; Timer1.Enabled := True; end; Para o relógio estas condições: procedure Tfrmrelogio.Timer1Timer(Sender: TObject); begin txtpausa.text :='00:00:00'; if comecar=1 then txtpausa.text := FormatDateTime('hh:mm:ss',Now-HoraInicial); end; criei este código para o botão zerar: procedure Tfrmrelogio.btnzerarClick(Sender: TObject); begin comecar:=0; HoraInicial := Now; Timer1.Enabled := True; end; Só não consegui ainda fazer com que no evento do espetador acontecesse além do formulário ficar maximizado, queria que ele ficasse como programa aberto, ou seja, se tivesse outros programas aberto (na barra de tarefa ou outro sendo usado) ele apareceria na frente dos outros. Pois o que acontece é que ele é maximizado mas o usuário nem sabe pois esta com outro programa aberto.... tentei usar o frmrelogio.hide() (único formulário) mas não da certo... da erro... o programa some da barra de tarefa e pra fechar só deligando o pc 😞 Edited October 3, 2013 at 01:13 AM by Hercles
nunopicado Posted October 3, 2013 at 08:02 AM Report #527341 Posted October 3, 2013 at 08:02 AM Tens de usar o BringToFront da aplicação, e não da form: Application.BringToFront; "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted October 3, 2013 at 10:42 PM Author Report #527565 Posted October 3, 2013 at 10:42 PM pra janela ativa? tentei não deu certo.... 😞
nunopicado Posted October 3, 2013 at 10:50 PM Report #527566 Posted October 3, 2013 at 10:50 PM Onde é que meteste? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted October 3, 2013 at 10:58 PM Author Report #527570 Posted October 3, 2013 at 10:58 PM (edited) nesta procedure procedure Tfrmrelogio.tmrrelogioTimer(Sender: TObject); begin txtrelogio1.text:=formatdatetime('hh:mm:ss', now); if (txtrelogio1.text=txthorario1) or (txtrelogio1.text=txthorario2) or (txtrelogio1.text=txthorario3)then begin Application.BringToFront; windowstate := wsmaximized; caption := 'Despertador Ativado'; tmranimacao.enabled := true; end; end; Edited October 3, 2013 at 11:00 PM by Hercles
nunopicado Posted October 3, 2013 at 11:12 PM Report #527572 Posted October 3, 2013 at 11:12 PM E ele chega a entrar no bloco onde tens o BringToFront? Aquela condição do IF parece-me um bocado estranha. Comparares data/hora com o igual é muito perigoso, porque basta passar 1 segundo e já não apanha. Deves sempre compara data/hora com os sinais >= ou <=, conforme o caso. E de preferencia, compara-os no formato TDateTime. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted October 3, 2013 at 11:41 PM Author Report #527574 Posted October 3, 2013 at 11:41 PM é que são três pausas que o funcionário vai ter, tem que ser "igual" pois o funcionário vai ter que sair no determinado horário..... o programa da um beep pra avisar mas queria que além disso ela abrisse e interrompesse o que o operador estivesse fazendo no computador. abrindo na frente de todos os programas que o operador tivesse utilizando ...
nunopicado Posted October 4, 2013 at 07:43 AM Report #527579 Posted October 4, 2013 at 07:43 AM Experimenta então tirar os segundos do teste, ficando apenas horas e minutos. No timer, mete no interval o valor 45000 para que o teste seja feito a cada 45 segundos. Assim tens a certeza que o contador passa por todos os minutos para que o teste não falhe. Em alternativa, estabeleces uma variável que te indique o turno actual, e no if usas o >= para apenas um horário, dependendo do turno actual. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted December 5, 2013 at 01:24 PM Author Report #536617 Posted December 5, 2013 at 01:24 PM Caros, existe alguma forma de um programa feito em Lazarus/ Delphi execultar tarefas do tipo: Quado o horário x acontecer, por exemplo, abra o real midia play a musica x - ou seja - fazer procedimentos que são de outros programas.....
nunopicado Posted December 5, 2013 at 01:46 PM Report #536621 Posted December 5, 2013 at 01:46 PM Caros, existe alguma forma de um programa feito em Lazarus/ Delphi execultar tarefas do tipo: Quado o horário x acontecer, por exemplo, abra o real midia play a musica x - ou seja - fazer procedimentos que são de outros programas..... Sim, sem problemas... Um TTimer vai verificando a hora, por exemplo, de minuto a minuto, e quando essa hora for atingida, manda executar um programa externo... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted December 5, 2013 at 02:05 PM Author Report #536626 Posted December 5, 2013 at 02:05 PM Certo. Mas seria tipo abrir o programa espeficico e usar os comando de botões deste outro programa. É possivel programar neste nivel? => Abra programa x , va no botão y e escolha a opção z (sendo que este outro programa ja foi desenvolvido, não é mais possivel alterar nada neste outro programa).
nunopicado Posted December 5, 2013 at 02:16 PM Report #536630 Posted December 5, 2013 at 02:16 PM Mas queres que o teu programa controle o outro? Isso já são outros quinhentos... Possível é, mas digo-te já que não tenho ideia de como... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted December 5, 2013 at 03:31 PM Author Report #536651 Posted December 5, 2013 at 03:31 PM 😞 acho que a unica maneira então é utilizar do Banco de dados do outro programa e fazer alterações direto neste banco 😞
nunopicado Posted December 5, 2013 at 03:56 PM Report #536656 Posted December 5, 2013 at 03:56 PM 😞 acho que a unica maneira então é utilizar do Banco de dados do outro programa e fazer alterações direto neste banco 😞 Sempre é mais simples, embora tenhas de ter cuidados redobrados para não estoirar a DB... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted December 5, 2013 at 04:17 PM Author Report #536667 Posted December 5, 2013 at 04:17 PM o que é "estoirar a DB" ? ah... Curiosidade e como faço pra abrir um programa qualquer apartir de um botão do formulário...? acredito que apartir dai, programar pra abrir em um determinado horario é só mudar o componente (TTimer) ..... Melhor criar outro foro, ne? outra coisa - Não é isso que quero fazer neste momento, mas é outra curiosidade que tenho... É possivel fazer um programa em delphi que ligue o pc em um determinado horario e depois ligue a web cam até um certo horário (liga pra gravar) .... ?
nunopicado Posted December 5, 2013 at 04:23 PM Report #536673 Posted December 5, 2013 at 04:23 PM Estoirar a DB é mexeres nos campos errados, e a aplicação original depois vai à procura dos dados e baralha-se... Sempre que uses uma DB que não é a tua, tens de ter certeza absoluta de que o que fazes é compatível com o que foi pensado para ela. Imagina por exemplo, mexes num campo, que só por acaso é usado para ligação a outra tabela... Nunca mais a DB vai ao sítio! Há várias maneiras de executar um programa, como o ShellExecute, o TProcess, etc. Pesquisa sobre esses. Em Lazarus, talvez o TProcess seja o melhor para ti. Ligar o PC não consegues... 🙂 Se ele está desligado, como queres que o programa esteja a correr para o ligar? Iniciar a webcam, estando o PC ligado, sim, é possível, mas depende do software da camara também. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Hercles Posted December 5, 2013 at 04:36 PM Author Report #536676 Posted December 5, 2013 at 04:36 PM Simm... eu digo o computador estando em "stand by " , "suspenso" , "hibernado"..... Mas ai poderia até abrir o programa da webcam mas entraria no dilema de como ia "clicar" no play para começar a grava (automaticamente) kkkkkkkkkk
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now