AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Destroy - Wie lösche ich richtig ein Panel aus 'nem Array?
Thema durchsuchen
Ansicht
Themen-Optionen

Destroy - Wie lösche ich richtig ein Panel aus 'nem Array?

Ein Thema von MisterNiceGuy · begonnen am 27. Okt 2006 · letzter Beitrag vom 27. Okt 2006
Antwort Antwort
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

Destroy - Wie lösche ich richtig ein Panel aus 'nem Array?

  Alt 27. Okt 2006, 18:10
Hi ich hab ein Array voller Panels, jetzt suche ich mir eins raus und "Destroye" es.
Das passiert hier:
Delphi-Quellcode:
findcomponent(baustein.Name).Destroy;
bausteine[i].Destroy;
Dabei wir das zu suchende Panel durch Baustein.name gefunden. Dieses Panel wird im Array erstellt.

Nun meine Frage:
Reicht die erste Zeile? Oder muss ich das Panel noch aus dem Array löschen oder mache ich das schon durch die erste Zeile Quellcode?

Danke für eure Hilfe!
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Destroy - Wie lösche ich richtig ein Panel aus 'nem Arra

  Alt 27. Okt 2006, 18:15
Hallo,
Zitat von MisterNiceGuy:
Reicht die erste Zeile? Oder muss ich das Panel noch aus dem Array löschen oder mache ich das schon durch die erste Zeile Quellcode?
Die erste Zeile zerstört das Panel, die zweite erzeugt im besten Falle eine AV. Der Grund ist einfach: Das Panel ist ja schon zerstört. Du musst also das Panel nur noch aus dem Array entfernen, aber wie das geht hängt davon ab, wie dieses implementiert ist.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Destroy - Wie lösche ich richtig ein Panel aus 'nem Arra

  Alt 27. Okt 2006, 18:19
die erste zeiel reicht, aber ich nutze die methode free():
Mit Free wird ein Objekt freigegeben. Wenn die Objektreferenz nicht nil ist, wird Destroy aufgerufen. Alle zur Laufzeit instantiierten Objekte, die keinen Eigentümer besitzen, sollten mit einem Aufruf von Free aufgelöst werden, damit sowohl das Objekt als auch der zugehörige Speicher korrekt freigegeben wird. Im Gegensatz zu Destroy funktioniert Free auch dann, wenn das Objekt nil ist. Es ist also kein Fehler, die Methode für ein Objekt aufzurufen, das niemals initialisiert wurde.

udn du solltest nach dem freigeben des objektes natürlich die länge deines arrays anpassen
  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 11:03 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