Seite 1 von 1

VB Code -> PB Code

Verfasst: 06.12.2007 22:57
von Glow
Hi

Ich versuche gerade ein paar alte VB Codes in PB zu portieren, hänge aber einer Stelle:

Code: Alles auswählen

Public Enum DIES_IST_EIN_TEST
  TEST1 = 0
  TEST2  = 1
  TEST3  = 2
End Enum
Einfach eine Enumeration machen geht nicht, da ja sonst der Bezug zu DIES_IST_EIN_TEST fehlt. Das ganze müsste am ende eigentlich eine art enumerierter Struktur ergeben.
Hat da jemand einen Tip für mich?

Gruß
Glow

Verfasst: 07.12.2007 00:35
von mk-soft
Vielleicht einfach so

Code: Alles auswählen

Enumeration 0
  #DIES_IST_EIN_TEST_TEST1
  #DIES_IST_EIN_TEST_TEST2
  #DIES_IST_EIN_TEST_TEST3
EndEnumeration
FF :wink:

Verfasst: 07.12.2007 02:05
von edel
DIES_IST_EIN_TEST ist uninteressant

Code: Alles auswählen

Enumeration 
  #TEST1 
  #TEST2 
  #TEST3  
EndEnumeration 

Verfasst: 07.12.2007 08:49
von Glow
Leider ist DIES_IST_EIN_TEST nicht uninteresannt. Denn später wird das wie eine Struktur benutzt:

Code: Alles auswählen

MeineTestVar = DIES_IST_EIN_TEST.DIES_IST_NOCH_EIN_TEST
Wobei DIES_IST_NOCH_EIN_TEST wiederum eine solche Enumeration darstellt. Also das ganze sieht dann ungefähr so aus:

Code: Alles auswählen

Public Enum DIES_IST_EIN_TEST
  TEST1 = 0
  TEST2 = 1
  TEST3 = 2
End Enum

Public Enum DIES_IST_NOCH_EIN_TEST
  MEHR_TEST1 = 0
  MEHR_TEST2 = 1
  MEHR_TEST3 = 2
  MEHR_TEST4 = 3
End Enum

MeineTestVar = DIES_IST_EIN_TEST.DIES_IST_NOCH_EIN_TEST
Gruß
Glow

Verfasst: 07.12.2007 13:53
von edel
Und doch ist es uninteressant, da du das ja nach PB portieren moechtest.
Du musst nur aufpassen das du keine doppelten Namen benutzt, bzw richtig
anpasst.

Code: Alles auswählen

enum temp0
  a
  b
End Enum

enum temp1
  a
  b
End Enum
in PB dann so z.B. wie es mk-soft schon schrieb

Verfasst: 07.12.2007 17:54
von mk-soft
Wenn man es so umbedingt braucht

Code: Alles auswählen

Structure STRUCT_DIES_IST_EIN_TEST
  TEST1.l
  TEST2.l
  TEST3.l
EndStructure

DataSection
  ENUM_DIES_IST_EIN_TEST:
  Data.l 0 ; Test1
  Data.l 1 ; Test2
  Data.l 2
EndDataSection

Global *DIES_IST_EIN_TEST.STRUCT_DIES_IST_EIN_TEST = ?ENUM_DIES_IST_EIN_TEST

Debug *DIES_IST_EIN_TEST\TEST1
Debug *DIES_IST_EIN_TEST\TEST2
Debug *DIES_IST_EIN_TEST\TEST3
Edit:
Oder

Code: Alles auswählen

Structure STRUCT_DIES_IST_EIN_TEST
  TEST1.l
  TEST2.l
  TEST3.l
EndStructure

DataSection
  ENUM_DIES_IST_EIN_TEST:
  Data.l 0 ; Test1
  Data.l 1 ; Test2
  Data.l 2 ; Test3
EndDataSection

Macro ENUM(Var)
  CopyMemory(?ENUM_DIES_IST_EIN_TEST, Var, SizeOf(STRUCT_DIES_IST_EIN_TEST))
EndMacro
  
Define TestVar.STRUCT_DIES_IST_EIN_TEST
ENUM(TestVar) ; ; TestVar = DIES_IST_EIN_TEST

Debug TestVar\TEST1
Debug TestVar\TEST2
Debug TestVar\TEST3

FF :mrgreen: