enum über mehrere Units



  • Hallo zusammen,

    irgendwie bekomme ich es nicht hin auf eine enum über mehrere Units zuzugreifen. Ich habe eine enum in einer separaten *.h deklariert (diese *.h habe ich in meinen Units includiert) und in Unit1 ist enum definiert. Nun möchte ich von Unit2 auf diese enum zugreifen.

    Danke für jeden Tip

    WoWe



  • wie enum ist in Unit1 definiert? ich denke im separaten header steht das enum?

    // separater header
    enum TBlahBlah { bb1, bb2, bb3 };
    

    in Unit1

    #include "separater_header.h"
    
    void __fastcall Form1::BlahFun(TBlahBlah Var)
    {
      if (Var == bb1)
        ShowMessage("Blah");
    }
    


  • Hallo Sunday,

    folgendes ist mein Problem:

    // separater header
    enum eColor { red, green, blue };
    
    // Unit1.cpp
    eColor Color1;
    
    Color1 = blue;
    
    // Unit2.cpp
    switch( xyz )
     {
      case 0: Color1 = red; // Das funktioniert nicht
      ...
      case 0: Form1->Color1 = red; // ... das auch nicht
     }
    


  • Abgesehen davon, dass globale Variablen zu vermeiden sind, würd ichs mal mit einer Deklaration in Unit2 mit vorangestelltem "extern" versuchen.

    -junix



  • Danke junix, mit extern geht's, aber wie könnte ich denn extern/global verhindern ?



  • Indem du die Color-Variable als Eigenschaft (siehe FAQ) von Form1 deklarierst z.b.... stellt sich natürlich die Frage nach deinem Anwendungsaufbau... Die Color-Variable hat doch sicher eine Art "Herr und Meister"... welche die Farbe verwaltet... dahin gehört sie dann auch...

    -junix


Log in to reply