AGB  ·  Datenschutz  ·  Impressum  







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

TObjectList: AV wenn OwnsObject := True

Ein Thema von Luckie · begonnen am 22. Jan 2007 · letzter Beitrag vom 22. Jan 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 13:43
Zitat von sakura:
oder der Liste verbieten die Objekte auch freizugeben (OwnsObjects := False.
dann aber mit update aufpassen...
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#22

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 13:45
Gar nichts. Den habe ich nicht überschrieben, das ist noch der original Destruktor von der Komponente. Allerdings liegen auf der Komponete noch andere Objekte, die zu der Komponente gehören, wie Layer usw. Allerdings bekomme ich auch eine AV, wenn sich dort keine weiteren Objekte befinden.

Also vom Parent entferne ich sie nicht. Aber das hatte auch keine Probleme als ich noch mit TList gearbeitet habe und im Destruktor die Objekte von Hand mit Free freigegeben habe.

@sakura: Wie gesagt, die TImageEnVect Komponenten, die ich dynamisch erstelle liegen nur in meinem eigenen Container von Typ TObjectList. Sie haben zwar das Formular als Parent aber das sollte ja eigentlich nicht stören. Und wenn ich OwnsObjects auf False setze, dann muss ich mich ja wieder selber um das Freigeben kümmern, was ich ja eigentlich vermeiden wollte.

PS: @sakura: Hast du mit diesen Komponenten schon eigene Erfahrungen gemacht? Ich hätte da nämlich noch das ein oder andere Problem. Und die Newsgroup war bisher noch nicht sehr hilfreich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#23

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:17
Hallo Michael,

Zitat:
@sakura: Wie gesagt, die TImageEnVect Komponenten, die ich dynamisch erstelle liegen nur in meinem eigenen Container von Typ TObjectList. Sie haben zwar das Formular als Parent aber das sollte ja eigentlich nicht stören.
Sakuras Hinweis noch einmal mit anderen Worten: ein TWinControl gibt im Destruktor alle in ihm liegenden Controls frei! Du kannst das von dir beobachtete Verhalten leicht mit der TImage-Komponente von Borland nachstellen. Ohne Lösen vom Parent knallt es, mit Lösen gibt es keine Probleme.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#24

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:21
Ich habe auch auf Parent gesetzt, aber habs grade getestet und habe keinen Fehler bekommen
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#25

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:22
Das heißt, ich müsste den Destruktor dann trotzdem noch mal überschreiben und dort dann so was machen:
Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to self.Count - 1 do
    self.Items[i].Parent := nil;
  inherited;
Womit ja dann in meinem Fall eine ObjectListe keine weiteren Vorteile zu einer normalen Liste bildet, da ich ja in beiden Fällen den Destruktor überschreiben müsste.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#26

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:36
Ist das ein großes projekt? Oder kannst du das mal hier als Anhang anheften damit man sich das mal genau anschauen kann?

Edit: Aargh du hast ja ne 3rd party Kompo drinne
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#27

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:37
Noch ist es nicht groß. Aber es verwendet eben eine Fremdkomponente, die man erst installieren müsste. Desweiteren mache ich das für die Firma und ich scheue mich etwas, das hier online zu stellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#28

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:47
Michael, wäre Delphi-Referenz durchsuchenTComponentList eine Alternative für dich?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#29

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:52
Auch damit bekomme ich eine AV, auch wenn ich im Destruktor den parent auf nil setze:
self.Items[i].Parent := nil; Das ist irgendwie alles nichts. Ich glaube, ich bleibe doch bei meiner TList.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#30

Re: TObjectList: AV wenn OwnsObject := True

  Alt 22. Jan 2007, 14:57
Also ich hab jetzt spasseshalber mal alle Komponenten vom Formular hinzugefügt und das ganze freigegeben.. kein Fehler..
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 06:05 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