Re-dimensionierung von array ?

30/04/2010 - 13:56 von Silenus paparias | Report spam
Hallo.

Ein Array (listarray) soll genau so viele zeilen erhalten als die
selektierten saetze aus eine Listbox.
Dazu habe ich foldende code geschrieben:

y=1
FOR i=1 TO thisform.list1.ListCount
IF thisform.list1.Selected(i)=.t.
DIMENSION listarray(y)
listarray(y)=thisform.list1.List(i)
y=y+1
ENDIF
endfor

Die Dimension des listarrays bleibt auf "1" egal wieviele saetze ich
aufwaehle

Hat jemand eine idee warum der obige code nicht funktioniert?

Danke im voraus.
 

Lesen sie die antworten

#1 Olaf Doschke
30/04/2010 - 15:28 | Warnen spam
Hallo Silenius,

y=1
Dimension somearray(y)
somearray(y)='a'
y=y+1
Dimension somearray(y)
somearray(y)='b'
y=y+1
?somearray(1), somearray(2)

Sieht soweit okay aus, aber an welcher Stelle kannst Du z.B. auf das 2.
Element nicht mehr zugreifen, welcher Fehler kommt?

Gültigkeitsbereich des Arrays? LOCAL, PUBLIC, PRIVATE? Weil Du es erst
mittels DIMENSION erzeugst wohl PRIVATE. Du wirst u.U. das Array einfach an
der Stelle, wo Du darauf zugreifen willst nicht mehr haben. Wenn es z.B. als
Rückgabe einer aufrufenden Methode gedacht ist, muß es auch vorab schon
PRIVATE oder besser als Objekt/Eigenschaft existieren.

Beschàftige Dich mal mit Gültigkeit von Variablen (variable scope), das
Thema müßte ich Dir auch schonmal empfohlen haben, es ist wichtig, sich
damit auszukennen, nicht optional.
Themen LOCAL, PUBLIC, PRIVATE.

Tschüß, Olaf.

Ähnliche fragen