AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dynamische Array-Variable freigeben (ARRAY OF BOOLEAN)
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamische Array-Variable freigeben (ARRAY OF BOOLEAN)

Ein Thema von Gast · begonnen am 28. Jun 2002 · letzter Beitrag vom 21. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Gast
(Gast)

n/a Beiträge
 
#1

Dynamische Array-Variable freigeben (ARRAY OF BOOLEAN)

  Alt 28. Jun 2002, 12:53
Hi, 8)

Delphi (5) F1:

(...)

Dynamische Array-Variablen sind implizit Zeiger und werden mit derselben Referenzzählung verwaltet wie lange Strings. Um ein dynamisches Array freizugeben, weisen Sie einer Variablen, die das Array referenziert, den Wert nil zu, oder Sie übergeben die Variable an Finalize. Beide Methoden geben das Array unter der Voraussetzung frei, daß keine weiteren Referenzen darauf vorhanden sind. Wenden Sie auf dynamische Array-Variablen nicht den Derefenzierungsoperator (^) an, und übergeben Sie sie auch nicht an die Prozeduren New oder Dispose.“
(...)

So...

[code:1:8deeee572a]
TYPE
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 28. Jun 2002, 12:58
Ich habe mich erst gewundert, ob das vielleicht ein FAQ werden soll, da ich die Herkunft D5 F1 nicht gleich kappiert habe

mit
Code:
TYPE
   ArrayOfBoolean = ARRAY OF Boolean;
hast Du erst einmal einen neuen Variablentyp deklariert. Anschließend musst Du noch eine Variable dieses Types deklarieren
Code:
var
  BooleanArray: ArrayOfBoolean;
begin
  ....
  SetLength(BooleanArray, 5];
  BooleanArray[0] := False;
  BooleanArray[1] := True;
  BooleanArray[2] := False;
  ...
  BooleanArray := nil;
  // oder - ich mache es immer wie folgt
  SetLength(BooleanArray, 0);
end;
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#3
  Alt 28. Jun 2002, 13:00
Natürlich Sakura,

es sollte heißen:

[code:1:5ab5fd732d]
TYPE
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 28. Jun 2002, 13:05
Nutze einfach das
Code:
SetLength(BooleanArray, 0);
Beispiel. Den Rest übernimmt Delphi dann automatisch.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5
  Alt 28. Jun 2002, 13:06
Bei mir funktioniert das aber unter D5 und D6.
Code:
type
  ArrayOfString = array of string;
  ArrayOfBoolean = array of Boolean;

procedure TForm1.Button1Click(Sender: TObject);
var
  a: ArrayOfString;
  b: ArrayOfBoolean;
begin
  a := nil;
  b := nil;
end;
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6
  Alt 28. Jun 2002, 13:07
Hi Sakura, 8)

ok... so mache is es...hat mich bloß gewundert das es mit NIL nicht klappt...

Na..ja ... auf Dich ist wie immer Verlaß...

Besten DANK

Paul Jr.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 28. Jun 2002, 13:08
Weisst Du, warum ich nicht die Deutsche Delphi Version nutze? Wegen der schlecht übersetzten Hilfe. Hier das Original
Zitat von Delphi 5 English:
Code:
SetLength(MyFlexibleArray, 20);
allocates an array of 20 reals, indexed 0 to 19. Dynamic arrays are always integer-indexed, always starting from 0.
Dynamic-array variables are implicitly pointers and are managed by the same reference-counting technique used for long strings. To deallocate a dynamic array, assign nil to a variable that references the array or pass the variable to Finalize; either of these methods disposes of the array, provided there are no other references to it. Dynamic arrays of length 0 have the value nil. Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.
Vielleicht hilfts, wie auch immer, am Ende mit SetLength(ArrayName, 0) wieder freigeben.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#8
  Alt 28. Jun 2002, 13:09
Ach so... mein Problem aber ist...das ich es später mit

IF a = NIL THEN

dieses Wert abfrage... was schlägst Du jetzt vor...?

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9
  Alt 28. Jun 2002, 13:10
if Length(a) = 0 then ...
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#10
  Alt 28. Jun 2002, 13:11
Hi Leute,

jetzt sehe ich (in Englisch,he,he)...

Danke jbg ... Danke Sakura

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:44 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