02. marts 2003 - 01:43
Der er
32 kommentarer og 1 løsning
Countdown.... Hvordan
Hej Jeg vil gerne lave et program magen til det her.
http://home20.inet.tele.dk/pcfreak/ex.rar Jeg ved hvordan jeg får computeren til at lukke ned. Jeg kan bare ikke finde ud af at lave en countdown som brugeren selv kan stille. Mit program skal bare bestå af; en form, en tæller som den i eksemplet, og en anortning hvor brugeren selv kan stille tiden.
På forhånd tak!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
r9
Nybegynder
02. marts 2003 - 02:12
#1
Smid en TTimer på din form. (findes under System) Smid en label (laMinLeft) sæt dens caption til 10 Lav en privat boolean (start) I Timer's 'OnTimer' skriver du: procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); end;
r9
Nybegynder
02. marts 2003 - 02:13
#2
lav en knap som sørger for at timeren kan køre procedure TForm1.Button2Click(Sender: TObject); begin start := true; end;
02. marts 2003 - 02:14
#3
Der er kun en ting i det du lige skrev jeg ikke forstod; Lav en privet boolean (start)?
r9
Nybegynder
02. marts 2003 - 02:16
#4
sådan: var start : Boolean; det er fordi at timeren kører hele tiden, og du skal således have en måde at start/stoppe den på
02. marts 2003 - 02:18
#5
oh ok. Jeg skal lige høre hvordan du vil lave den editbox brugeren kan indtaste minutterne i hvorefter man så trykker på knappen som så starter lablens countdown i den angivne tid
02. marts 2003 - 02:18
#6
Og skulle den der boolean stå i lablen eller i timeren
r9
Nybegynder
02. marts 2003 - 02:22
#7
smid en edtBox på formen. skriv sådan her i knap metoden: procedure TForm1.Button2Click(Sender: TObject); begin laMinLeft.Caption := Edit1.Text; start := true; end; og sådan her i timer'en: procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); end;
r9
Nybegynder
02. marts 2003 - 02:23
#8
mine typer: Timer1: TTimer; laMinLeft: TLabel; Button2: TButton; Edit1: TEdit; var Form1: TForm1; start : Boolean;
r9
Nybegynder
02. marts 2003 - 02:26
#9
unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; laMinLeft: TLabel; Button2: TButton; Edit1: TEdit; procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; start : Boolean; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); end; procedure TForm1.Button2Click(Sender: TObject); begin laMinLeft.Caption := Edit1.Text; start := true; end; end.
02. marts 2003 - 02:29
#10
Kan man få timeren til at stoppe ved 0 Og kan man få fx et billede (image1) til at blive visible når den når 0
r9
Nybegynder
02. marts 2003 - 02:31
#11
if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then start := false;
02. marts 2003 - 02:33
#12
Ja undskyld men jeg er rimelig ny i delphi så jeg kan ikke lige regne ud hvor de forskellige ting skal skrives
r9
Nybegynder
02. marts 2003 - 02:35
#13
laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then begin start := false; image1.Visible := true;
r9
Nybegynder
02. marts 2003 - 02:35
#14
image findes under additional
02. marts 2003 - 02:41
#15
Hvor skal dette stå henne laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then begin start := false; image1.Visible := true;
02. marts 2003 - 02:56
#16
ohh nu fandt jeg ud af det
r9
Nybegynder
02. marts 2003 - 02:56
#17
procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then begin start := false; image1.Visible := true; end; end;
02. marts 2003 - 02:58
#18
Det virker ikke. Billedet kommer frem 2 sek efter formen er loadet
r9
Nybegynder
02. marts 2003 - 02:59
#19
I object inspectoren skal du sætte dit Image's visible property til false
02. marts 2003 - 02:59
#20
Det har jeg
r9
Nybegynder
02. marts 2003 - 03:03
#21
underligt. Dette virker hos mig: unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,POP3SMTP, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; laMinLeft: TLabel; Button2: TButton; Edit1: TEdit; Image1: TImage; procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; start : Boolean; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then begin start := false; image1.Visible := true; end; end; procedure TForm1.Button2Click(Sender: TObject); begin laMinLeft.Caption := Edit1.Text; image1.Visible := false; start := true; end; end.
02. marts 2003 - 03:04
#22
Jeg poster lige mit for lettere at sammenligne: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg; type TForm1 = class(TForm) Button1: TButton; laMinLeft: TLabel; Edit1: TEdit; Timer1: TTimer; Image1: TImage; procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; start : Boolean; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin if start then laMinLeft.caption:=IntToStr(StrToInt(laMinLeft.caption)-1); if laMinLeft.Caption = IntToStr(0)then start := false; Image1.Visible := true; end; procedure TForm1.Button1Click(Sender: TObject); begin laMinLeft.Caption := Edit1.Text; start := true; end; end.
r9
Nybegynder
02. marts 2003 - 03:06
#23
image1.Visible := true; bliver ALTID udført ved dig. Du mangler en "begin"
02. marts 2003 - 03:06
#24
Nåå... Nu virker det hvis jeg copy/paster dine procedures
r9
Nybegynder
02. marts 2003 - 03:07
#25
og en "end"
02. marts 2003 - 03:08
#26
Kan man lave en mere detaljeret timer med timer og minutter.
02. marts 2003 - 03:11
#27
Nu virker det med en timer der tæller ned i sekunder. Kan man lave en timer der tæller ned i timer, minutter og sekunder. I så fald skal man så bruge 3 editboxe til hver enhed
r9
Nybegynder
02. marts 2003 - 03:11
#28
jeg prøver lige
02. marts 2003 - 03:11
#29
ok
02. marts 2003 - 03:35
#30
nå jeg smutter for i aften.
02. marts 2003 - 23:06
#31
Sig til hvis der sidder en eller anden der ved hvordan man laver en timer med sekunder, minutter og timer ;)
03. marts 2003 - 08:27
#32
const t=0; {timer} m=0; {minutter} s=3; {sekunder} {kan naturligvis også hentes fra 3 editboxe eller spinnere} var tim,min,sek: integer; Function Form(x,y,z: integer):string; var a,b: string; begin If y < 10 then a := '0'+inttostr(y) else a := inttostr(y); If z < 10 then b := '0'+inttostr(z) else b := inttostr(z); result := inttostr(x)+':'+a+':'+b; end; procedure TForm1.Timer1Timer(Sender: TObject); begin dec(sek); if sek = -1 then begin sek := 59; dec(min); end; if min = -1 then begin min := 59; dec(tim); end; label1.caption := form(tim,min,sek); if ((tim=0) and (min=0) and (sek=0)) then begin timer1.enabled := false; showmessage('Tiden er gået'); end; end; procedure TForm1.FormCreate(Sender: TObject); begin tim := t; min := m; sek := s; label1.caption := form(tim,min,sek); end; end.
03. marts 2003 - 09:16
#33
PS. formateringen kan også laves således: label1.caption := format('%2d:%2.2d:%2.2d',[tim,min,sek]);
Kurser inden for grundlæggende programmering