Nedtælling i Delphi

Tags:    delphi

User
Bruger #812 @ 09.03.02 13:28
Jeg skal bruge en stump kode, så kan lave en label, hvor der står 120 i, der så falde en pr. sekund.
--
Thomas



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Tja... Det er faktisk ret enkelt.

Først vil jeg lige forklare to procedurer som kan være ret nyttige: Inc og Dec. Inc står for Increase eller sådan noget, og den bruges sådan Inc(I); Inc lægger 1 til det gamle tal. Dec betyder så Decrease og bruges sådan: Dec(I); DEc fjerner 1 fra det gamle tal. Så vidt jeg husker kan du også udvide Inc og Dec, men kan ikke lige huske hvordan!

Men timeren's event kan se sådan ud:

procedure TForm1.Timer1OnTimer(Sender: TObject);
var
I: integer;
begin
I := StrToInt(Label1.Caption); // Her omdanner vi Label1's caption til en Integer (I)
Dec(I); // Her trækker vi en fra
Label1.Caption := IntToStr(I); // Her omdanner vi I til en string;
end;

StrToInt = Omdan string til integer
IntToStr = Omdan integer til string

- Nick
- Send me mails at cnn@pc.dk



<quote>Jeg skal bruge en stump kode, så kan lave en label, hvor der står 120 i, der så falde en pr. sekund.
--
Thomas</quote>

Hejsa:

(teksten forudsætter at du ikke har lavet om på labelens og timerens navn).
lav en form. tilføj en timer og en label.
Gå ind i koden. Kør helt op til øverste linje. Kig så nedaf indtil du når til et sted der står 'VAR'.
Nedenunder var, er der noget tekst med 'Form1 : Tform1;' eller noget i den retning. Lav en ny linje uder den og skriv:

i : integer;

Dobbeltklik på formen, og skriv

i:=120;

Dobbeltklik på timeren og skriv

i:=i-1;

label1.Caption:=IntToStr(i);

Her er hele koden (Delphi6 kode. Guiden KAN bruges under ældre delphier)

Source fra Delphi6:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i : integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i-1;

label1.Caption:=IntToStr(i);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=120;
end;

end.

Forklaring på linier(Hvis du er begynder):
i : integer; --Siger at 'i' er et tal, og at delphi skal behandle det som et.
i:=120; --Forklarer delhpi at 'i' skal være tallet 120
i:=i-1; --Hver gang koden kører, bliver i -'et med 1.
label1.Caption:=IntToStr(i); --Forklarer delphi at Label 1's tekst skal være tallet 'i'. IntToStr laver 'TalTilTekst'!

Håber du kan bruge det.
Daniel



t