Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array prüfen (https://www.delphipraxis.net/94957-array-pruefen.html)

qb-tim 28. Jun 2007 15:31


Array prüfen
 
Hi,

ich habe in meinem Programm ein Array[1..200, 1..200], der aber nicht für jeden Wert Array[x, y] aktiviert (mit "create") wurde.
Wie kann ich denn prüfen, ob z.Bsp Array[50, 100] vorhanden ist, oder nicht.

Beispiel:

Delphi-Quellcode:
for y := 1 to 100 do
  for x := 1 to 100 do
  begin
    MyArray[x, y] := TMyObject.Create;
    MyArray[x, y].MyVar := x * y;
  end;
for y := 150 to 200 do
  for x := 150 to 200 do
  begin
    MyArray[x, y] := TMyObject.Create;
    MyArray[x, y].MyVar := x * y;
  end;
Wie kann ich prüfen lassen ob MyArray[x, y] vorhanden ist, oder nicht?

DeddyH 28. Jun 2007 15:34

Re: Array prüfen
 
Delphi-Quellcode:
if Assigned(MyArray[x,y]) and (MyArray[x,y] is TMyObject) then

SirThornberry 28. Jun 2007 15:36

Re: Array prüfen
 
hast du das Array vorher mit nil initialisiert?
Am besten du setzt das Array zu begin überall auf nil um später prüfen zu können ob etwas zugewiesen wurde
Delphi-Quellcode:
ZeroMemory(@MyArray, SizeOf(MyArray));

qb-tim 28. Jun 2007 15:42

Re: Array prüfen
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
if Assigned(MyArray[x,y]) and (MyArray[x,y] is TMyObject) then

Wunderbar... Danke :thumb:

Ich habe es so benutzt:

Delphi-Quellcode:
if Assigned(MyArray[x,y]) = False then
begin
  ShowMessage('Error 404'); // z.Bsp
  exit;
end;

Christian Seehase 28. Jun 2007 16:08

Re: Array prüfen
 
Moin Tim,

Zitat:

Zitat von qb-tim
Ich habe es so benutzt:

Delphi-Quellcode:
if Assigned(MyArray[x,y]) = False then
begin
  ShowMessage('Error 404'); // z.Bsp
  exit;
end;

Dann schlage ich mal vor, dass Du es etwas anders machst: ;-)

Delphi-Quellcode:
if not Assigned(MyArray[x,y]) then
begin
  ShowMessage('Error 404'); // z.Bsp
  exit;
end;
Boolesche Werte sollte man nie auf Gleichheit prüfen, ausserdem ist es so auch lesbarer.

SirThornberry 28. Jun 2007 16:17

Re: Array prüfen
 
@christian. Eine prüfung auf False sollte fehlerfrei sein aber "schöner" ist es auf jeden fall mit not


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