![]() |
Objekt mit einer Variable im Namen
Hallo, ich bin zwar ganz neu hier aber ich hoffe das ihr mir trotzdem helfen könnt.
Und zwar habe ich folgendes Problem. Ich habe einen Constructor der ein Obekt erstelt das mit einem Timer ausgestattet ist.
Delphi-Quellcode:
Jedes Objekt das durch diesen Constructor soll jedoch einen anderen Namen kriegen, so das ich wenn ich z.B. 100 mal dieses erstelle
constructor Unit.Create (....);
begin inherited Create; ... hEnergie:= TTimer.Create(nil); hEnergie.OnTimer:= bla; hEnergie.Interval:=1000; hEnergie.Enabled:=true; ... end; 100 Timer in dem Format wie hEnergie[1], hEnergie[2] usw. habe. Meine Frage ist jetzt, kann man das überhaupt umsetzen und wenn ja wie genau? Gruss Daniel |
Re: Objekt mit einer Variable im Namen
Zitat:
Was willst du machen? Willst du 100x eine Instanz von "Unit" (constructor Unit.Create) erzeugen, die einen Timer hat (btw: was du mit 'Unit' sagen willst, ist mir auch noch nicht ganz klar) oder in dieser Klasse 100 Timer haben? Wenn 1.) Dazu brauchst du halt eine Liste, die die Instanzen verwaltet (dyn. Array oder TList) Wenn 2.) Das hat mit dem Constructor der Klasse nichts zu tun, sondern du mußt die Erzeugung der Timer aus dem Constructor rausnehmen und woanders auslagern und aufrufen. Alles klar? :cheer: |
Re: Objekt mit einer Variable im Namen
Hallo und welcome!
Probier es mal mit Arrays, in etwa so:
Delphi-Quellcode:
var
MeineObjekte: array of TMeinObjekt; { ... } var i: word; begin SetLength(MeineObjekte, 10); // das dynamische Array auf die Größe von 10 Elementen setzen for i:= 0 to 9 do // und die 10 Elemente ... MeineObjekte[i]:= TMeinObjekt.Create; // ..erzeugen end; Edit: Alternativ ist eine TObjectList eine feine Sache, ich habe sie erst letztens kennen und zu schätzen gelernt. |
Re: Objekt mit einer Variable im Namen
Hallo
Kleiner Hinweis zu hunderten von TTimer-Instanzen ... Ich habe mal früher gelernt, daß man mit TTimer Komponenten sparsam umgehen sollte, da diese vom Betriebssystem gestellt werden und nur eine begrenzte Anzahl zur Verfügung stehen .... |
Re: Objekt mit einer Variable im Namen
Für dein Problem reicht ein Timer und eine priority queue.
|
Re: Objekt mit einer Variable im Namen
Danke, für all die Antworten.
Ich muss mir wohl doch nochmal genau gedanken machen wie ich das lösen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz