VB Code -> PB Code

Anfängerfragen zum Programmieren mit PureBasic.
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

VB Code -> PB Code

Beitrag 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
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

DIES_IST_EIN_TEST ist uninteressant

Code: Alles auswählen

Enumeration 
  #TEST1 
  #TEST2 
  #TEST3  
EndEnumeration 
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

Beitrag 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
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten