Zugriff auf Steuerelement

29/07/2008 - 19:11 von Jürgen Schmitt | Report spam
Hallo,
möchte ein 2/3-Dimensionales Array mit MSHFlexgrid erstellen.
Klappt leider nicht so, wie iches mir vorstelle.

z.B.
Option Explicit
Dim testgrid() as MSHFlexgrid
Dim a,b as Integer

Private Sub Form_Load()
a = 20: b = 30
Redim testgrid(1 to a, 1 to b)
a = 5: b = 8
testgrid(a, b).visible = True

End Sub

Die Zeile testgrid(a, b).visible = True
bringt Fehler 91, Objektvariable nicht festgelegt

Set testgrid = New DataGrid
bringt Fehler beim Compilieren, keine Zuweisung an Array möglich

Was mache ich falsch.
Vielen Dank
 

Lesen sie die antworten

#1 Peter Götz
29/07/2008 - 20:05 | Warnen spam
Hallo Jürgen,

möchte ein 2/3-Dimensionales Array



Ein "was für" Array?

mit MSHFlexgrid erstellen.
Klappt leider nicht so, wie iches mir vorstelle.

z.B.
Option Explicit
Dim testgrid() as MSHFlexgrid



Hier deklarierst Du ein Array mit dem DatenTyp MSHFlexGrid.

Dim a,b as Integer



Nach dieser Deklaration ist die Variable a vom Typ Variant
und die Variable b vom Typ Integer. Soll das wirklich so sein?

Private Sub Form_Load()
a = 20: b = 30
Redim testgrid(1 to a, 1 to b)



Jetzt redimensionierst Du das Array.
Damit hast Du ein Array, welches 20 * 30
HFlexGrid-Controls aufnehmen kann.
Was willst Du mit 600 Grids? Je nach Datenmenge,
welche diese Grids in ihren Datenpuffern aufnehmen
sollen, könnte es da schon recht eng im Speicher
werden.


a = 5: b = 8



Und was willst Du mit der vorstehenden Zeile erreichen?

testgrid(a, b).visible = True



Da Dein Array bisher keine einzige Instanz eines
HFlexGrids enthàlt, kannst Du auch keines sichtbar
machen.


End Sub

Die Zeile testgrid(a, b).visible = True
bringt Fehler 91, Objektvariable nicht festgelegt



Ja, weil Dein Array zwar für den Typ MSHFlexGrid
deklariert wurde, aber keine einzige Instanz eines
solchen Grids enthàlt. Alle Teilvariablen Deines
Arrays haben den Wert Nothing.

Set testgrid = New DataGrid
bringt Fehler beim Compilieren, keine Zuweisung
an Array möglich



Der Ausdruck "New DataGrid" erzeugt eine (1) Instanz
eines DataGrids. Das ist kein HFlexGrid und schon gar
kein Array() von HFlexGrids.
Was also soll das werden?

Was mache ich falsch.



Hmm, na ja, eigentlich alles.
Offensichtlich hast Du da irgendwas gründlich
missverstanden.
Weder aus Deiner Beschreibung noch aus Deinem
Code ist ersichtlich, was das überhaupt werden soll.

Um eine verwertbare Hilfestellung zu erhalten, solltest
Du mal etwas verstàndlicher beschreiben, was Du
überhaupt machen willst.
Es ist u.a. kaum vorstellbar, dass irgendjemand 600
HFlexGrids erzeugen und diese dann auch noch auf
einem Bildschirm sichtbar machen will.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen