Variable Timer
Hoffentlich is da der richtige Threadtitel...
Delphi-Quellcode:
Aufgerufen zum Beispiel mit:
type Timer = Array(*[1..40]*) of TTimer;
procedure FNummerTimerstart(NR: Integer); begin if Form1.RadioGroup1.itemindex =0 then Timer[NR].enabled := true; if Form1.RadioGroup1.itemindex =1 then begin Nr := Nr+10; Timer[NR].enabled := true; end; if Form1.RadioGroup1.itemindex =2 then begin Nr := Nr+20; Timer[NR].enabled := true; end; if Form1.RadioGroup1.itemindex =3 then begin Nr := Nr+30; Timer[NR].enabled := true; end; end;
Delphi-Quellcode:
Ich hab mich hieran orientiert:
FNummerTimerstart(2);
http://www.wer-weiss-was.de/theme159...le1957127.html Die Timer gibts aber schon. Zum Problem, dort werden eckige Klammern [] verwendet, bei mir gibts da eine Fehlermeldung:
Code:
Wenn ich jetzt normale Klammern () nehme:
[Fehler]: '(' erwartet, aber '[' gefunden
Code:
Was ist hier falsch? :wall:
[Fehler]: Record, Objekt oder Klassentyp erforderlich
|
Re: Variable Timer
Das verstehe ich ehrlich gesagt nicht. Die eckigen Klammern müssten eigentlich richtig sein. Allerdings wäre es wohl besser, wenn das statt einer Prozedur eine Methode Deines Formulars wäre.
|
Re: Variable Timer
Hallo,
nimm "var" anstelle von "type":
Delphi-Quellcode:
Denk auch daran, die Timer zu erzeugen.
var Timer: array(*[1..40]*) of TTimer;
Grüße |
Re: Variable Timer
Hi,
nenn den Typ mal z. B. TTimerArray. Und dann brauchst du eine Variable Timer vom Typ TTimerArray. Mfg FAlter |
Re: Variable Timer
Du hast keine Variable vom Typ Timer deklariert, sonden verwendest statt dessen den Typbezeichner, als wäre er eine.
Delphi-Quellcode:
...
var timers: Timer; begin timers[0] := humbug; end; |
Re: Variable Timer
Also nochmal im Ganzen:
Delphi-Quellcode:
Jetzt noch im OnCreate die Timer anlegen und OnDestroy wieder freigeben.
type
TTimerArray = array[1..10] of TTimer; TForm1 = class(TForm) ... private FTimerArray: TTimerArray; ... end; |
Re: Variable Timer
Und die Funktion kannst du auch ziemlich verkürzen:
Delphi-Quellcode:
type
TForm1 = class(TForm) RadioGroup1: TRadioGroup; private procedure FNummerTimerstart(NR: Integer); //.. end; implementation procedure TForm1.FNummerTimerstart(NR: Integer); begin case RadioGroup1.ItemIndex of 1: Inc(Nr, 10); 2: Inc(Nr, 20); 3: Inc(Nr, 30); end; {oder: Inc(Nr, RadioGroup1.ItemIndex * 10);} Timer[NR].Enabled := True; end; |
Re: Variable Timer
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Variable Timer
Ich vermute, du hast die Timer nicht erzeugt:
Delphi-Quellcode:
Grüße
for i := 0 to 39 do
begin Timer[i] := TTimer.Create(self); Timer[i].Interval := ... // ... end; Edit: "Interval" schreibt man mit einem "l". |
Re: Variable Timer
Die Timer sind aber auf dem Formular schon vorhanden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz