AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

referenz auf ein object abspeichern?

Ein Thema von richard_boderich · begonnen am 24. Okt 2005 · letzter Beitrag vom 24. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 10:38
hallo leute,

ich moechte die referenz auf ein object abspeichern, in einem array, oder in einer stringlist. ist so etwas moeglich? und wie kann ich das bewerkstelligen? theoretisch muesste es doch reichen, einen pointer auf das object abzuspeichern oder?

Gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 10:45
Zitat von richard_boderich:
theoretisch muesste es doch reichen, einen pointer auf das object abzuspeichern oder?
genau

ich organisiere mir meine objekte für solche fälle schlicht und einfach in einer TObjectList.
ich erstelle das objekt und gebe es einfach der funktion TObjectList.Add(),
das tolle an der objectList ist, dass sie die enthaltenen objekte automatisch freigibt, wenn diese gelöscht oder die liste selbst freigegeben werden.

Delphi-Quellcode:
var tempObject: TObject;
begin
  tempObject := TObject.Create();
  //...tempobject wie gewünscht initialisieren
  myObjectList.Add(tempObject);

  //wenn ich's nciht mehr brauche, lösche ich das objekt mit dem definierten index
  myObjectList.delete(0);
end;
aenogym

edit: in einer stringList kannst du weiterhin auch noch die funktion AddObject() aufrufen
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 10:50
Delphi-Quellcode:
var tempObject: TObject;
begin
  tempObject := TObject.Create();
  //...tempobject wie gewünscht initialisieren
  myObjectList.Add(tempObject);

  //wenn ich's nciht mehr brauche, lösche ich das objekt mit dem definierten index
  myObjectList.delete(0);
end;
Achtung Achtung das reicht nicht aus.
hier wird nur die Referenz gelöscht. Der Speicher aber bleibt belegt!!!
myObjectList.delete(0); Vorher unbedingt Speicher freigeben
Delphi-Quellcode:
TObject(myObjectList[0]).Free;
myObjectList.delete(0);
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 10:57
@Jens: stimmt nur bedingt.
Die OH sagt dazu.
Zitat:
TObjectList verwaltet eine Liste der (eigenen) Objekte.

Unit

Contnrs

Beschreibung

Mit TObjectList können Sie eine Liste von Objekten speichern und verwalten. Die Komponente stellt Eigenschaften und Methoden für das Hinzufügen, Löschen, Umsortieren, Suchen, Zugreifen und Sortieren von Objekten zur Verfügung. Ist die Eigenschaft OwnsObjects auf True gesetzt (Voreinstellung), verwaltet TObjectList den Speicher seiner Objekte, das heißt, ein Objekt wird freigegeben, wenn sein Index neu zugewiesen wird, wenn es mit der Methode Delete, Remove oder Clear aus der Liste entfernt wird oder wenn die Instanz TObjectList selbst aufgelöst wird.
..daher ist das nicht nötig, solange OwnsObjects nicht mit false initialisiert wird.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 10:58
Zitat von Jens Schumann:
hier wird nur die Referenz gelöscht. Der Speicher aber bleibt belegt!!!
nein:

Zitat von Aenogym:
das tolle an der objectList ist, dass sie die enthaltenen objekte automatisch freigibt, wenn diese gelöscht oder die liste selbst freigegeben werden.
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#6

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 11:11
ok jungen, erstmal danke fuer eure antworten, aber das meint ich gar nicht.

ich habe im stringgrid bestimmte ausgaben, die werte des objects darstellen. jetzt will ich aber eine funktion implementieren,
das wenn ich auf die ensprechende zeile mit der rechten maustaste klicke, nicht nur die zeile mit den werten geloescht wird,
sondern auch das object selber. und dazu brauch ich doch die objectreferenz.

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 11:15
Zitat von richard_boderich:
ok jungen, erstmal danke fuer eure antworten, aber das meint ich gar nicht.

ich habe im stringgrid bestimmte ausgaben, die werte des objects darstellen. jetzt will ich aber eine funktion implementieren,
das wenn ich auf die ensprechende zeile mit der rechten maustaste klicke, nicht nur die zeile mit den werten geloescht wird,
sondern auch das object selber. und dazu brauch ich doch die objectreferenz.

richard
im stringGrid werden die zeilen doch als StringList gespeichert, oder?
da könntest du doch TStringList.AddObject() verwenden, um deine objekte mit den strings zu verknüpfen.
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#8

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 11:32
TStringGrid hat sogar ein eigenes Property Objects. Da kannst du für jedes Feld einzeln ein Objekt reinhauen. Oder du nimmst z.B. immer das erste Feld, wenn du nur eins pro Zeile brauchst...
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#9

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 11:44
ja aber mein object is doch visuell, und ich will es aber nicht im stringgrid dargestellt haben? oder mach ich da einen denkfehler?

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#10

Re: referenz auf ein object abspeichern?

  Alt 24. Okt 2005, 12:01
Zitat von richard_boderich:
ja aber mein object is doch visuell, und ich will es aber nicht im stringgrid dargestellt haben? oder mach ich da einen denkfehler?

richard
Jap, machst du.

Das Objekt wird nicht im Grid dargestellt ( ausser, du willst es so ). Du speicherst nur die Referenz auf das Objekt. Parent, Owner etc. bleiben die alten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:59 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