AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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
21.058 Beiträge
 
Delphi XE Professional
 
#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
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
22.951 Beiträge
 
Delphi XE2 Professional
 
#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.
Delphi-Tage 2012
  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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2012 by Daniel R. Wolf