AGB  ·  Datenschutz  ·  Impressum  







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

Obejekt aus Array löschen

Ein Thema von AlexW93 · begonnen am 12. Jan 2012 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
AlexW93

Registriert seit: 16. Nov 2009
5 Beiträge
 
#1

Obejekt aus Array löschen

  Alt 12. Jan 2012, 08:35
Delphi-Version: 5
Hallo,

ich möchte ein Objekt aus einem Array löschen. Scheint aber so, als ob es mit 'destroy' nicht funktioniert.

Hier ein Beispiel:
Delphi-Quellcode:
//Das ist nur ein Beispiel, sieht in meinem Projekt natürlich nicht so aus

var
  blocks:array[0..19,0..19] of TShape;


procedure loeschen;
begin
  blocks[1,2].Destroy;
end;

procedure istVorhanden;
begin
  if blocks[1,2]=NIL then
     machWas;
end;
Nun weiß ich nicht, ob ich mit NIL abfragen muss oder ob ich das Objekt irgendwie anders löschen muss.

Danke für die Antwort schon im Voraus

mfg. AlexW93
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Obejekt aus Array löschen

  Alt 12. Jan 2012, 08:37
Versuch es mal mit
Delphi-Quellcode:
procedure loeschen;
begin
  FreeAndNil(blocks[1,2]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#3

AW: Obejekt aus Array löschen

  Alt 12. Jan 2012, 08:41
Destroy besser nicht direkt aufrufen. (steht übrigens auch in der OH)

Wenn du auf NIL prüfen willst, dann mußt du das natürlich auch setzen.
Delphi-Quellcode:
procedure loeschen;
begin
  blocks[1,2].Free;
  blocks[1,2] := nil;
end;

procedure istVorhanden;
begin
  if not Assigned(blocks[1,2]) then // sowas ist auch möglich
     machWas;
end;
Oder als eine gemeinsame Funktion:
Delphi-Quellcode:
procedure loeschen;
begin
  FreeAndNil(blocks[1,2]);
end;
FreeAndNil setzt die Variable "sicher" auf NIL, denn eigentlich müßte sie NilAndFree heißen.
Dort wird erst die Variable auf NIL gesetzt und erst dann .Free aufgerufen.
Selbst Wenn es im Free knallt (Exception), dann ist die Variable dennoch NIL.


[edit] Oh, eine RedBox ( die lebt doch noch? ).
Egal, diemal ignorier ich dich einfach
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
AlexW93

Registriert seit: 16. Nov 2009
5 Beiträge
 
#4

AW: Obejekt aus Array löschen

  Alt 12. Jan 2012, 08:44
Danke für die schnelle Antwort!
Wenn ich zuhause bin, werd ich das gleich ausprobierten.

mfg AlexW
  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 04:29 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