Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi arbeiten mit array of stringlist (https://www.delphipraxis.net/2951-arbeiten-mit-array-stringlist.html)

Jan 15. Feb 2003 16:50


arbeiten mit array of stringlist
 
Hallo DP,

Ich habe leider 2 Probleme:
1.:
wie kann ich überprüfen ob array[i] noch existiert, wenn ich zuvor
array[i].free; ausgeführt habe?
Mit assigned(array[i]) erhalte ich trotzdem noch true.
array[i] ist eine stringlist.

2.: Ich übergebe in eine Prozedur einen array of tstringlist und möchte nun per setlength(übergabearray, length(übergabearray)-1) die letzte stelle abschneiden, aber ich bekomme einen error, dass es sich um inkompatible typen handelt. Wenn ich selbiges mache, bevor ich den array übergebe tritt das nicht auf.

Hoffe, dass mir da einer weiterhelfen kann.
BB
Jan

Luckie 15. Feb 2003 17:06

Bitte pro Frage einen Thread, sonst geht das hier zu sehr durcheinander. :mahn:

Aber zu 1.: Versuch mal array[i].FreeAndNil;

Jan 15. Feb 2003 17:31

Hallo Luckie,
entschuldige den post, wird nicht nochmal vorkommen.

Zitat:

Aber zu 1.: Versuch mal array[i].FreeAndNil;
nicht eher so?:

Code:
FreeAndNil(filterarray[i]);
allerdings gibt auch mit diesem befehl
assigned(filterarray[i]) true zurück.

Gruß
Jan

d3g 15. Feb 2003 18:40

Wenn du die Objekte mit FreeAndNil() löschst, kannst du eine einfache Überprpfug auf nil machen:
Delphi-Quellcode:
if (array[i] = nil) then
  ObjectExists();
Irgendwie logisch, oder ;-)?

Jan 15. Feb 2003 18:45

Hallo d3g,

Code:
if not filtarray[i]= nil then
Fehlermeldung:
Operator ist auf diesen Operandentyp nicht anwendbar.

:[
Was mach ich falsch?
BB
Jan

d3g 15. Feb 2003 19:14

Hi Jan,

der not-Operator hat eine sehr hohe Gewichtung. Der Ausdruck
Delphi-Quellcode:
not filtarray[i] = nil
ist deshalb genau das gleiche wie
Delphi-Quellcode:
(not filtarray[i]) = nil
Und weil man den not-Operator nur auf Zahlen und nicht auf Objekte anwenden kann, bekommst du eine Fehlermeldung. Es muss also heißen:
Delphi-Quellcode:
if (not (filtarray[i] = nil)) then
  ObjectExists();
MfG,
d3g

Jan 16. Feb 2003 11:52

ok, danke, klappt jetzt alles :]

Touchdown 17. Feb 2003 20:08

if Object <> nil then


Viel schöner :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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