VB6: Wie schreib ich das?

15/03/2010 - 21:39 von Eric van Dijken | Report spam
Public RokadeStatus(1 To 4) As Boolean


Public Type StatusRecord
EnpVeld As Integer
Rokade As RokadeStatus()
End Type


ODER:


Public Type StatusRecord
EnpVeld As Integer
Rokade as RokadeStatus (1 to 4) as Boolean
End Type


Beide sind Falsch. Aber wie soll ich das dann schreiben?

Vielen Dank,
Eric
 

Lesen sie die antworten

#1 Ulrich Korndoerfer
15/03/2010 - 22:30 | Warnen spam
Hallo,

Eric van Dijken schrieb:
Public RokadeStatus(1 To 4) As Boolean


Public Type StatusRecord
EnpVeld As Integer
Rokade As RokadeStatus()
End Type


ODER:


Public Type StatusRecord
EnpVeld As Integer
Rokade as RokadeStatus (1 to 4) as Boolean
End Type


Beide sind Falsch. Aber wie soll ich das dann schreiben?

Vielen Dank,
Eric





Ich weiß nicht, was Du vor hast, aber syntaktisch korrekte Möglichkeiten
wàren:

Public Type StatusRecord
EnpVeld As Integer
Rokade(1 To 4) As Boolean
End Type

Anwendung dann mit:

Public Status As StatusRecord

Status.Rokade(1) = True

etc.

Oder

Public Stati() As StatusRecord

ReDim Stati(1 To 100)

Stati(99).Rokade(2) = True

Mit der Type Anweisung werden sogenannte "benutzerdefinierte Typen"
erzeugt. Englisch heißt das "user defined types" oder kurz UDT und sie
entsprechen den "structs" in C/C++ und den "records" in Pascal. Ein so
deklarierter Typ kann überall dort verwendet werden, wo VB eine
Typangabe erwartet.

Bevor ein UDT verwendet werden kann, muß er bereits deklariert sein:

Public Type StatusRecord
EnpVeld As Integer
Rokade(1 To 4) As Boolean
End Type

Public Status As StatusRecord

ist ok,

Public Status As StatusRecord

Public Type StatusRecord
EnpVeld As Integer
Rokade(1 To 4) As Boolean
End Type

geht nicht.


Die Mitglieder (members, Elemente) eines UDTs können ihrerseits jeden
beliebigen, bereits bekannten Typ (inklusive der VB Standardtypen wie
Boolean, Single, String etc) haben, insbesondere auch einen UDT Typ:

Public Type TRokade
Value As Boolean
End Type

Public Type StatusRecord
EnpVeld As Integer
Rokade(1 To 4) As TRokade
End Type

Public Status As StatusRecord

Status.Rokade(1).Value = True

Typedefs wie in C sind nicht möglich. Ebenso gibt es keine Unions in VB.

Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.proSource.de/Downloads/

Ähnliche fragen