if og timer gør ikke som forventete

Tags:    delphi

<< < 12 > >>
if
timer1.Interval=25000 then
label1.Caption:= 'tekst1';

if timer1.Interval=50000 then
label1.Caption:= 'se tekst to';
if
timer1.Interval=80000 then
label1.Caption:= 'se tekst nummer 3';

****

Oveførte kode skulle virke sådan at den hele tiden skiftede
til den næste tekst og satte den ind.
Den måtte også gerne starte forfra igen.


Men den virker ikke ?

den sidder i :
procedure TForm1.Timer1Timer(Sender: TObject);





tarsankode



13 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Du skal da huske at skrive else imellem vær gang!



Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world




Jeg har spurt andre steder, det håber jeg er OK ? : )

En har næsten fået den lavet som sådan :

var
Form1: TForm1;
i: integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
I:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
i := i+1000;
Label1.Caption:=IntToStr(i);
if i = 25000 then Label1.Caption := 'tid1'
else if i = 50000 then Label1.Caption := 'tid2';
if i >= 80000 then
begin
Label1.Caption:= 'tid3';
i:= 0;
end;
end;

end.

MEN NEJ !

den bliver stående på tid3 ... så nej ikke endnu virkder det.
Mærkeligt at det kan volde så mange problemer ? : )

VH
tarsankode


Hehe det skulle helst heller ikke volde så mange problemer. Ret simpel opgave.

Men her er ihvertfald den præcise kode som virker for mig:

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



if
timer1.Interval=25000 then
label1.Caption:= 'tekst1';

if timer1.Interval=50000 then
label1.Caption:= 'se tekst to';
if
timer1.Interval=80000 then
label1.Caption:= 'se tekst nummer 3';

****

Oveførte kode skulle virke sådan at den hele tiden skiftede
til den næste tekst og satte den ind.
Den måtte også gerne starte forfra igen.


Men den virker ikke ?

den sidder i :
procedure TForm1.Timer1Timer(Sender: TObject);





tarsankode


Grunden til dette er at timer1.interval returnere det interval timeren er sat til i Object Inspectoren.

En enkel metode at gøre det på ville være at lave 3 timere istedet og så sætte hver af deres intervaller til henholdvis 25000, 50000 og 80000 og så sætte koden til at ændre label'ens caption under hver enkel timer.
Ikke en speciel god måde men en enkel måde...


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 17:23:06 af Rune Jensen (RoZ)]



if
timer1.Interval=25000 then
label1.Caption:= 'tekst1';

if timer1.Interval=50000 then
label1.Caption:= 'se tekst to';
if
timer1.Interval=80000 then
label1.Caption:= 'se tekst nummer 3';

****

Oveførte kode skulle virke sådan at den hele tiden skiftede
til den næste tekst og satte den ind.
Den måtte også gerne starte forfra igen.


Men den virker ikke ?

den sidder i :
procedure TForm1.Timer1Timer(Sender: TObject);





tarsankode


Grunden til dette er at timer1.interval returnere det interval timeren er sat til i Object Inspectoren.

En enkel metode at gøre det på ville være at lave 3 timere istedet og så sætte hver af deres intervaller til henholdvis 25000, 50000 og 80000 og så sætte koden til at ændre label'ens caption under hver enkel timer.
Ikke en speciel god måde men en enkel måde...


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 17:23:06 af Rune Jensen (RoZ)]


Hej igen Rune Jensen
Godt DU er her ! :)

Ja den er enkel, men kan det slet ikke gøres med if ?

tarsankode




Hej igen Rune Jensen
Godt DU er her ! :)

Ja den er enkel, men kan det slet ikke gøres med if ?

tarsankode


Hmm måske. Du kan prøve noget lignende dette:
Sæt timerens interval til 1000 og i ontimer skriv:

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 18:13:25 af Rune Jensen (RoZ)]




Hej igen Rune Jensen
Godt DU er her ! :)

Ja den er enkel, men kan det slet ikke gøres med if ?

tarsankode


Hmm måske. Du kan prøve noget lignende dette:
Sæt timerens interval til 1000 og i ontimer skriv:

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 18:13:25 af Rune Jensen (RoZ)]


Der må mangle noget ?
Den køre ikke ?
Skal der stå noget om at i er timerens interval ? eller så ?


tarsankode




Hej igen Rune Jensen
Godt DU er her ! :)

Ja den er enkel, men kan det slet ikke gøres med if ?

tarsankode


Hmm måske. Du kan prøve noget lignende dette:
Sæt timerens interval til 1000 og i ontimer skriv:

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 18:13:25 af Rune Jensen (RoZ)]


Der må mangle noget ?
Den køre ikke ?
Skal der stå noget om at i er timerens interval ? eller så ?


tarsankode


Du skal huske at sætte i til en Global variabel. Altså deklarere den i starten af uniten og ikke under Timeres OnTimer.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------




Hej igen Rune Jensen
Godt DU er her ! :)

Ja den er enkel, men kan det slet ikke gøres med if ?

tarsankode


Hmm måske. Du kan prøve noget lignende dette:
Sæt timerens interval til 1000 og i ontimer skriv:

Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 03/06-05 18:13:25 af Rune Jensen (RoZ)]


Der må mangle noget ?
Den køre ikke ?
Skal der stå noget om at i er timerens interval ? eller så ?


tarsankode


Du skal huske at sætte i til en Global variabel. Altså deklarere den i starten af uniten og ikke under Timeres OnTimer.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



NOB !
Virker ikke, har gjort det hele !

tarsankode



Du skal da huske at skrive else imellem vær gang!



Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



Lyder godt men NEJ , det virker ikke !

tarsankode



Du skal da huske at skrive else imellem vær gang!



Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



Lyder godt men NEJ , det virker ikke !

tarsankode


Her hos mig virker koden fint nu?

Så jeg ville næsten tro det var dig der gjorde noget forkert :P

Kan du evt. poste hele din unit her så jeg kan se hvad du gør galt?

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 04/06-05 00:47:38 af Rune Jensen (RoZ)]



<< < 12 > >>
t