AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi zur Laufzeit Objektname bestimmen und Objekt erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

zur Laufzeit Objektname bestimmen und Objekt erzeugen

Ein Thema von cook · begonnen am 10. Nov 2003 · letzter Beitrag vom 10. Nov 2003
Antwort Antwort
cook

Registriert seit: 4. Nov 2003
Ort: Ilmenau
37 Beiträge
 
Delphi 6 Enterprise
 
#1

zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 22:02
Also folgendes:
Ich habe eine Klasse TMaschine, in der die Außmaße, Eigenschaften, u.s.w. meiner Maschine stehen. Nun will ich zur Laufzeit mehrere Maschinenobjekte dieser Klasse erzeugen, die natürlich auch alle anders heißen sollen. Normalerweise mach ich das ja mit einer statischen Zuweisung im Quelltext, also sowas wie
Delphi-Quellcode:
var
FMaschine : TMaschine;
Jedoch wie halte ich die Variable FMaschine dynamisch? Also so dass ich eine Abfrage mache: wie soll die Maschine1 /2 /3 ... heißen?
Ich weiß vorher nicht wieviele Maschinen ich erzeugen will.
Und wie spreche ich dann im weiteren Programm meine Maschinen an, weil das muss ja dann auch dynamisch sein!??

Ich bitte um Hilfe!
mfg cook
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 22:05
Nimm doch ein Array, in dem du deine Objekte verwaltest (Oder auch TObjectList). Dann kannst du über einen Index dynamisch an ein bestimmtes Element gelangen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
cook

Registriert seit: 4. Nov 2003
Ort: Ilmenau
37 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 22:36
Also mache ich dann sowas wie?:
Delphi-Quellcode:
Objektarray: array[1..20] of record
    Objektname: string{30];
    Objektbreite: integer;
...
Objektarray[2].Objektname := Edit.Text;
...
Edit2.Text := IntToStr(Objektarray[2].Objektbreite);
Ist das möglich???
Entspricht das der OOP? oder macht man das dann anders?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 22:42
Moin Cook,

Chewie dachte wohl eher an TList, also so in dieser Form:

Delphi-Quellcode:
var
  lsMaschinenListe : TList;

begin
  lsMaschinenListe := TList.Create;
  lsMaschinenListe.Add(TMaschine.Create);
end;
Wichtig ist, dass Du das so einbaust, dass Du später erst die Objekte in der Liste jeweils wieder freigibst, bevor Du die Liste freigibst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
cook

Registriert seit: 4. Nov 2003
Ort: Ilmenau
37 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 22:57
ok... dann werd ich das mal mit TList ausprobieren. Aber erst morgen, für heute genug programmiert.
Mit Freigeben meinst du dann
Maschine1.Free;
und danach erst
lsMaschinenliste.Free;
??

Wann muss ich die Sachen eigentlich wieder freigeben? Jedesmal beim beenden des Programms, oder nur wenn ich ein Objekt löschen will?

n8 cook
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#6

Re: zur Laufzeit Objektname bestimmen und Objekt erzeugen

  Alt 10. Nov 2003, 23:12
Zitat von Christian Seehase:
Wichtig ist, dass Du das so einbaust, dass Du später erst die Objekte in der Liste jeweils wieder freigibst, bevor Du die Liste freigibst.
Hallo cook, Chewie hat hier bereits auf TObjectList verwiesen, eine Klasse, die ähnliche Funktionen aufweist, wie TList, das Arbeiten mit Objekten aber ohne "hässliche Casts" und die automatische Freigabe der Ressourcen ermöglicht (siehe OH).
gruß, choose
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 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