AGB  ·  Datenschutz  ·  Impressum  







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

Object ersetzen aber trotzdem behalten

Ein Thema von Yheeky · begonnen am 27. Jun 2008 · letzter Beitrag vom 28. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#11

Re: Object ersetzen aber trotzdem behalten

  Alt 27. Jun 2008, 21:49
Zwei weitere gut gemeinte Vorschläge die ich mal so in den Raum werf:

1. Benutz für einen Zeilenumbruch besser #13#10 oder die Konstante sLineBreak.
2. Weiß ja nicht ob das dein Richtiger Autotyp ist, aber falls, besitzt er keine Methoden und von daher ist es besser hier einen Record (unten auf der Seite) zu benutzen.
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#12

Re: Object ersetzen aber trotzdem behalten

  Alt 28. Jun 2008, 13:37
Zitat von Hawkeye219:
Hallo Yheeky,

mit der Methode Delphi-Referenz durchsuchenTObjectList.Extract kannst du ein Element aus einer Objektliste entfernen ohne es freizugeben. Alle folgenden Listenelemente rücken automatisch auf und schließen somit die entstehende Lücke. Ein neues Element lässt sich natürlich jederzeit mit Hilfe der Methode Delphi-Referenz durchsuchenTObjectList.Insert an einer beliebigen Position der Liste einfügen. Bei der Verwendung von Extract musst du beachten, dass du auch die Verantwortung für die Freigabe des entfernten Elements übernimmst.

Noch ein Vorschlag: spendiere deiner Klasse TAuto einen eigenen Konstruktor, damit vereinfachst du das Erstellen neuer Instanzen:
Hallo Hawneye219, danke, cool! Wusste garnicht, dass es eine extra Funktion dafür gibt, aber auf einem anderen Wege habe ich es auch nicht hinbekommen
Was meinst du genau mit, dass ich die Verantwortung für die Freigabe des Elementes übernehmen muss?
EDIT: Vergiss es, hab´s verstanden Du meintest ja, dass das Objekt nicht freigegeben wird und dass ich mich da drum kümmern muss ist klar. Aber das ist ja gerade meine Absicht, dass das Objekt dann nicht freigegeben wird

Ein Konstruktor vereinfacht das Ganze, da hast du recht - danke auch hierfür!
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#13

Re: Object ersetzen aber trotzdem behalten

  Alt 28. Jun 2008, 13:51
Du musst das Objekt, ehe du die letzte Referenz (Pointer) auf es verlierst mittels TObject.Free freigeben, da sonst der Speicher den es belegt, nicht wieder an da Systetm zurückgegeben wird, sondern im Nirvana verschwindet, bis sich nach Pogrammbeendigung das Betriebssystem (hoffentlich) darum kümmert, dass er wieder befreit wird, worauf man sich aber nicht verlassen kann, da dies sehr systemabhängig und unzuverlässig ist, der Speicher während der Ausführung verloren geht und es absolut schlechter Programmierstil wäre.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:27 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