AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi ComboBox mit unterschiedlichen Objekten - sauber abraeumen?
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox mit unterschiedlichen Objekten - sauber abraeumen?

Offene Frage von "OldGrumpy"
Ein Thema von OldGrumpy · begonnen am 23. Feb 2007 · letzter Beitrag vom 23. Feb 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#1

ComboBox mit unterschiedlichen Objekten - sauber abraeumen?

  Alt 23. Feb 2007, 08:39
Hallo zusammen,

ich hab mal wieder ein übles Stückchen Software vor mir. Momentan habe ich da eine Combobox, der mittels AddObject() neben den einzelnen Strings auch unterschiedliche zugehörige Objekte (fragt mich nicht warum, dazu komme ich erst später, erstmal muss ich die drei Millionen Speicherlecks beheben...) zugewiesen werden. Wenn die Combobox später abgeräumt wird, muss ich natürlich diese Objekte auch einzeln wieder freigeben, nur wie komme ich da ran? Entweder bin ich zu doof die OH zu verstehen oder ich seh den Wald vor lauter Bäumen nicht. Bei meinen bisherigen Experimenten bin ich noch nicht über diverse Access Violations hinausgekommen... Auch die Suche hier im Forum war nicht wirklich erleuchtend, kann mir mal jemand bitte einen Schubs in die richtige Richtung geben? Herzlichen Dank schonmal im Voraus
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 08:41
.Objects
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 08:49
okay, ich haette dazusagen sollen, dass ein myCombobox.Items.Objects[i].Free zu den erwähnten AVs führt.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 08:56
Zitat von OldGrumpy:
okay, ich haette dazusagen sollen, dass ein myCombobox.Items.Objects[i].Free zu den erwähnten AVs führt.
Wie und wo machst du es denn (Code)?
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:18
Wo ist mein Kaffee... bin noch nicht ganz wach, das Projekt das ich hier übernommen hab ist echt schlimm. Ich hab in den letzten Tagen sicherlich fuenfhundertmal TList.Create gesehen, gefolgt von diversen Zuweisungen von Objekten in die Liste und danach ein einfaches TList.Free - ohne vorher die Objekte abzuraeumen. Das Logfile von FastMM4 war 1,9 MB gross und inzwischen bin ich auf 450kb runter

Also, befüllt wird die Combobox in MyForm.FormCreate (gebunden ans OnCreate-Event):

Delphi-Quellcode:
procedure TMyForm.FormCreate(Sender: TObject);
Begin
[...]
MyComboBox.items.addObject(menutext, TObject(integer(TMyEffect)));
MyComboBox.items.addObject(menutext2, TObject(integer(TMyEffect2)));
[...]
End;
menutext und menutext2 sind Strings, und wo ichs jetzt paste wundere ich mich, was das mit dem TMyEffect usw. soll - TMyEffect und Konsorten sind Klassendefinitionen.

Abgeraeumt soll das ganze natürlich in TMyForm.FormDestroy (gebunden ans OnDestroy-Event):

Delphi-Quellcode:
procedure TMyForm.FormDestroy(Sender: TObject);
var i: integer;
Begin
[...]
for i:=0 to MyComboBox.Items.Count-1 do MyComboBox.Items.Objects[i].Free;
[...]
End;
So, und nun bin ich mal gespannt, was ich da übersehen hab
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:19
Zitat:
MyComboBox.items.addObject(menutext, TObject(integer(TMyEffect)));
?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#7

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:20
Hast du auf "<> nil" geprüft?
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#8

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:27
Zitat von ste_ett:
Hast du auf "<> nil" geprüft?
Ja, nirgends nil zu sehen. Würde mich auch wundern wenn nach der obigen Zuweisung irgendwo nil drinständ

Zitat von mkinzler:
Zitat:
MyComboBox.items.addObject(menutext, TObject(integer(TMyEffect)));
?
Könntest Du bitte im ganzen Satz fragen? Ist noch früh
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:32
Warum versuchst du eine Referenz(Zeiger) auf ein Objekt zuerst in einene Integer und dann in ein TObject zu casten (jedes Objekt ist schon ein TObject) ?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: ComboBox mit unterschiedlichen Objekten - sauber abraeum

  Alt 23. Feb 2007, 09:35
Zitat von mkinzler:
Warum versuchst du eine Referenz(Zeiger) auf ein Objekt zuerst in einene Integer und dann in ein TObject zu casten (jedes Objekt ist schon ein TObject) ?
Das ist nicht mein Code, ich hab das Projekt nur übernommen nachdem der alte Programmierer das Weite gesucht hat Das ganze Paket hat weit über hunderttausend Zeilen Code, ich hab in den drei Tagen jetzt noch nicht allzuviel davon wirklich anschauen können. Was das da soll, kann ich Dir auf Anhieb auch nicht sagen, ich schau mal eben ob sich da was finden lässt das Aufschluss gibt...
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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