22. marts 2003 - 20:02Der er
5 kommentarer og 2 løsninger
Loops
Jeg er igang med at læse "Sams Teach yourself Borland Delphi 4 in 21 days" og jeg er noget til Loops.
Faktisk har jeg læst Loops afsnittet (Dag 2) igennem. Men nu er jeg så i tvivl om hvordan man gøre dette: Jeg har en TButton på min form og vil gerne have at den caption ændre sig hvert sekund (med timer self.).
Fx. til: 5 4 3 2 1 0
Har prøvet sådan: var I : Integer; X : Integer; begin X := 5; X := X -1; for I := 0 to 5 do begin Button1.Caption :=''+IntToStr(X); end; end;
Men det virker ikke. Hvad gør jeg forkert? Og hvordan gøre jeg det rigtigt?
Vil gerne vide hvordan, før jeg går videre til Dag 3 i bogen :)
Du skal huske at du bruger I til at tælle med, derfor er det også I som ændres, skift derfor IntToStr(X) ud med IntToStr(I);
En anden ting er at hvert trin i den loop ikke tager et sekund, men den tid det tager for computeren at køre koden i loopen igennem; derfor meget hurtigt.
En sidste ting, du skriver du vil have den til at tælle ned, derfor skal du istedet for to bruge downto. Eksempel:
var I : Integer; begin for I := 5 downto 0 do begin Memo1.Lines.add(IntToStr(I)); end; end;
Den her procedure bruger jeg selv til at sætte vent ind, den har den fordel at tastetryk og musse-flyt/tryk events udføres selv under vent, er god til fx "annuller"-knap som altså er aktiv under vent alligevel. Husk: uses forms;
procedure delay(s: real); //vent sekunder, fx 0.01 = 1/100 del var dt: TdateTime; begin if s<>0 then begin dt:=now+s/(24*3600); while now < dt do application.ProcessMessages; end; end; //delay
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.