Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekt mit einer Variable im Namen (https://www.delphipraxis.net/106697-objekt-mit-einer-variable-im-namen.html)

drs 15. Jan 2008 00:30


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:
constructor Unit.Create (....);
begin
        inherited Create;
        ...
        hEnergie:= TTimer.Create(nil);
        hEnergie.OnTimer:= bla;
        hEnergie.Interval:=1000;
        hEnergie.Enabled:=true;
        ...
end;
Jedes Objekt das durch diesen Constructor soll jedoch einen anderen Namen kriegen, so das ich wenn ich z.B. 100 mal dieses erstelle
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

Nuclear-Ping 15. Jan 2008 00:46

Re: Objekt mit einer Variable im Namen
 
Zitat:

Hallo, ich bin zwar ganz neu hier aber ich hoffe das ihr mir trotzdem helfen könnt.
Was hat das eine mit dem anderen zu tun? ;)

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:

Dunkel 15. Jan 2008 00:48

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.

peschai 15. Jan 2008 05:31

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 ....

alzaimar 15. Jan 2008 06:34

Re: Objekt mit einer Variable im Namen
 
Für dein Problem reicht ein Timer und eine priority queue.

drs 15. Jan 2008 14:14

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