Hercles Posted September 25, 2013 at 02:20 AM Report #525824 Posted September 25, 2013 at 02:20 AM (edited) não consigo fazer as duas imagem 'flulogo.bmp' e 'rivellino.bmp' alternarem. unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { Tfrmrelogio } Tfrmrelogio = class(TForm) btnligar: TButton; btndesligar: TButton; Image1: TImage; tmranimacao: TTimer; tmrrelogio: TTimer; txtrelogio: TEdit; txthoras: TEdit; txtminutos: TEdit; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; procedure btndesligarClick(Sender: TObject); procedure btnligarClick(Sender: TObject); procedure Image1Click(Sender: TObject); procedure tmranimacaoTimer(Sender: TObject); procedure tmrrelogioTimer(Sender: TObject); procedure txthorasChange(Sender: TObject); private txthorario: string; { private declarations } public { public declarations } end; var frmrelogio: Tfrmrelogio; implementation {$R *.lfm} { Tfrmrelogio } procedure Tfrmrelogio.txthorasChange(Sender: TObject); begin end; procedure Tfrmrelogio.tmrrelogioTimer(Sender: TObject); begin txtrelogio.text:=formatdatetime('hh:mm:ss', now); if (txtrelogio.text=txthorario) then begin windowstate := wsmaximized; caption := 'Despertador Ativado'; tmranimacao.enabled := true; end; end; procedure Tfrmrelogio.btnligarClick(Sender: TObject); var dtmdespertar: Tdatetime; begin txthorario:= txthoras.text +':'+txtminutos.text+':00'; dtmdespertar:= strtotime(txthorario); caption:=formatdatetime('hh:mm:ss', dtmdespertar); btnligar.caption := 'Despertador Ligado' ; tmranimacao.tag := 0; end; procedure Tfrmrelogio.Image1Click(Sender: TObject); A begin end; procedure Tfrmrelogio.tmranimacaoTimer(Sender: TObject); begin if (tmranimacao.tag = 0) then image1.picture.loadfromfile('flulogo.bmp'); if(tmranimacao.tag = 1) then Image1.picture.loadfromfile('rivellino.bmp'); tmranimacao.tag := (tmranimacao.tag + 1) mod 2; beep; end; procedure Tfrmrelogio.btndesligarClick(Sender: TObject); begin txthorario:=''; caption:='Relógio'; tmranimacao.enabled:=false; btnligar.caption:= 'Liga Despertador'; windowstate:=wsNormal; image1.visible:=false; end; end. Edited September 25, 2013 at 02:24 AM by Hercles
nunopicado Posted September 25, 2013 at 07:25 AM Report #525825 Posted September 25, 2013 at 07:25 AM Experimenta, antes de carregares as imagens, libertar a actual e forçar o processamento de mensagens. "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 September 25, 2013 at 10:03 PM Author Report #526012 Posted September 25, 2013 at 10:03 PM a atual é o método TImage?
nunopicado Posted September 25, 2013 at 10:09 PM Report #526014 Posted September 25, 2013 at 10:09 PM a atual é o método TImage? TImage é uma classe, e não um método. Experimenta, antes de começares a carregar as imagens para o TImage, usar o seguinte: image1.Picture.Bitmap.FreeImage; Application.ProcessMessages; "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 September 25, 2013 at 10:58 PM Author Report #526016 Posted September 25, 2013 at 10:58 PM coloquei dentro de => procedure Tfrmrelogio.tmranimacaoTimer(Sender: TObject); e continuou no mesmo
Gilson Nunes Posted September 26, 2013 at 11:55 AM Report #526081 Posted September 26, 2013 at 11:55 AM (edited) if (txtrelogio.text=txthorario) then pq não usa o proprio dado? por exemplo: 01:00:00 <> '1:00' sobre o prob. testei assim e funcionou normalmente. qual o interval q vc usou no timer? o meu ta com 1000 begin if (tmranimacao.tag = 0) then tmranimacao.picture.loadfromfile('D:\d\image.bmp') else tmranimacao.picture.loadfromfile('D:\d\teste.bmp'); tmranimacao.Tag := (tmranimacao.tag + 1) mod 2; Beep; end; Edited September 26, 2013 at 12:58 PM by thoga31 Tags code + GeSHi
thoga31 Posted September 26, 2013 at 12:58 PM Report #526087 Posted September 26, 2013 at 12:58 PM Nota: como colocar o código no fórum. Knowledge is free!
Hercles Posted September 26, 2013 at 10:37 PM Author Report #526208 Posted September 26, 2013 at 10:37 PM ok, valeu!! 🙂
Hercles Posted September 29, 2013 at 08:14 PM Author Report #526617 Posted September 29, 2013 at 08:14 PM curiosidade... Digamos que eu ofereça um programa como este a uma pessoa gratuitamente até o dia 31/12/2013 e após esta data ele não vai funcionar mais e será informado por este programa que: Sua licença expirou, "entre em contato contato como xxxx pelo telefone xxxxxx". Sei que seria algo do tipo - se data atual igual ou maior que 31/12/2013 então o programa vai pro fim e exibe mensagem de critica.
thoga31 Posted September 29, 2013 at 08:15 PM Report #526619 Posted September 29, 2013 at 08:15 PM Nesse caso é simples: analisas qual é o ano e mais nada 😄 Se o ano for maior do que 2013, apresenta uma mensagem de erro e não arranca. Knowledge is free!
nunopicado Posted September 29, 2013 at 08:16 PM Report #526620 Posted September 29, 2013 at 08:16 PM Sei que seria algo do tipo - se data atual igual ou maior que 31/12/2013 então o programa vai pro fim e exibe mensagem de critica. Não precisa "ir para o fim". Podes antecipar esse fim. Se a data for > xx/xx/xxxx, mostra a mensagem de depois "Application.Terminate;" "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.
thoga31 Posted September 29, 2013 at 08:19 PM Report #526623 Posted September 29, 2013 at 08:19 PM Uma técnica utilizada muitas vezes em .NET é tornar a form principal invisível no arranque, e no evento referente à abertura da Form (não me lembro do nome) mandava-se abrir logo uma segunda Form que fazia a verificação. Ou então a verificação era feita no principal no arranque, e caso estivesse tudo bem, tornava-se visível. Depende do gosto de cada um. Knowledge is free!
Hercles Posted September 29, 2013 at 08:22 PM Author Report #526625 Posted September 29, 2013 at 08:22 PM mas a variável é string.. quando eu transformar ela pra Tdate ela pode ser comparada >=?
nunopicado Posted September 29, 2013 at 08:23 PM Report #526626 Posted September 29, 2013 at 08:23 PM Uma técnica utilizada muitas vezes em .NET é tornar a form principal invisível no arranque, e no evento referente à abertura da Form (não me lembro do nome) mandava-se abrir logo uma segunda Form que fazia a verificação. Ou então a verificação era feita no principal no arranque, e caso estivesse tudo bem, tornava-se visível. Depende do gosto de cada um. Em Delphi/Lazarus, pelo menos, a form principal só é mostrada depois de executar o OnCreate. Assim, se a verificação for feita aí, a form não chega a ser mostrada (ainda que apareça um flick no ecrã da dita a ser fechada). Se for feito no programa principal, antes de chamar a form, aí tudo se passa de forma invisível, não chega a usar a memória para a form. mas a variável é string.. quando eu transformar ela pra Tdate ela pode ser comparada >=? Sim, os operadores relacionais funcionam tanto em String como em 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 September 29, 2013 at 08:32 PM Author Report #526628 Posted September 29, 2013 at 08:32 PM SHOW>>>>rsrsrsr vou criar um programinha pra a empresa que trabalho e vou sacaniar uma pessoal que acha que vai ficar com os méritos ... kkkk depois de uma certa data vou colocar uma mensagem "Prazo expirado é necessário que contactar o criador do Software, meu nome completo e telefone, para a manutenção" 🙂
nunopicado Posted September 29, 2013 at 08:37 PM Report #526630 Posted September 29, 2013 at 08:37 PM SHOW>>>>rsrsrsr vou criar um programinha pra a empresa que trabalho e vou sacaniar uma pessoal que acha que vai ficar com os méritos ... kkkk depois de uma certa data vou colocar uma mensagem "Prazo expirado é necessário que contactar o criador do Software, meu nome completo e telefone, para a manutenção" 🙂 Pronto, mais um que vai para o desemprego! lol "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.
thoga31 Posted September 29, 2013 at 08:42 PM Report #526633 Posted September 29, 2013 at 08:42 PM @nunopicado, é originalidade. Em vez de se despedir com carta de resignação, faz um software com data limite de uso. Até pode ser que saia na TV... ah não, espera, não é Portugal com televisão tipicamente tuga... 😄 Knowledge is free!
nunopicado Posted September 29, 2013 at 08:44 PM Report #526634 Posted September 29, 2013 at 08:44 PM hehehe Hercles: Não sei como é a lei brasileira, mas aqui, se fazes um software enquanto funcionário de uma empresa, os direitos do software são da empresa, e não teus. Vê lá o que fazes para não arranjares problemas. "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 September 29, 2013 at 08:49 PM Author Report #526638 Posted September 29, 2013 at 08:49 PM mas pensa comigo... um dia vou ser demitido, já pensou se a empresa ficar atrás de mim pra resolver este problema kkkkkkk seria uma retorno a altura. mas não sou da área de TI desta empresa. kkkkk
nunopicado Posted September 29, 2013 at 08:58 PM Report #526641 Posted September 29, 2013 at 08:58 PM Há empresas que preferem mandar fazer tudo de novo do que pedir a um funcionário demitido para resolver o problema... especialmente se o problema for causado por ele. É preferivel não abrires essa guerra. Faz o programa, fa-lo de forma a que se torne tão imprescindivel que não possam viver sem ele. Melhora-o, torna-o gigante, para que a sua substituição seja impensável. E mantém-te sempre à frente do projecto. "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.
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