Klassenname als Variable?



  • Hallo!

    Ist es irgendwie möglich einen Klassennamen als Variable zu übergeben?

    Bzw wie kann ich das realisieren?

    Bin für jede Hilfe dankbar.

    Lg,
    suki



  • Hallo

    wie bitte?
    Wenn du zur Laufzeit den Typnamen einer Klasse herausfinden willst, kannst du bei von TObject abgeleiteten Sachen TObject::ClassName() nehmen.

    bis bald
    akari



  • für was?
    was willst du machen?



  • habe eine fertige schrittmotor steuerung (allerdings nur 1 achse)
    will sie jetzt auf x und y achse ausbauen!

    im main.h:

    private:	// User declarations
    
      StepMotor* StepMotorX;
      StepMotor* StepMotorY;
      .
      .
    

    im main.cpp:

    //---------------------------------------------------------------------------
    __fastcall TFrmMain::TFrmMain(TComponent* Owner)
      : TForm(Owner)
    {
      StepMotorX = new StepMotor(false,StepMotorX);
      StepMotorY = new StepMotor(false,StepMotorY);
    }
    //---------------------------------------------------------------------------
    

    im StepMotor.h:

    class StepMotor : public TThread
    {
    private:
      StepMotor* ThisStepMotor;
      .
      .
    };
    

    im StepMotor.cpp:

    __fastcall StepMotor::StepMotor(bool CreateSuspended, StepMotor* MyStepMotor)
      : TThread(CreateSuspended)
    
    {
      ThisStepMotor = MyStepMotor;
      bCmdSteuerungEin=false;				//müsste da dann nicht ThisStepMotor->bCmdSteuerungEin... gehören?
      bCmdSteuerungAus=false;
    .
    .
    }
    

    lg,
    suki



  • Hallo

    oje... StepMotor ThisStepMotor;* ist komplett unnötig. Dafür gibt es bereits das Schlüsselwort this. Damit fliegt auch der unnötige und nicht funktionierende zweite Parameter des Konstruktors weg

    __fastcall StepMotor::StepMotor(bool CreateSuspended)
      : TThread(CreateSuspended)
    
    {
      bCmdSteuerungEin=false; 
      // oder noch präziser : this->bCmdSteuerungEin=false; 
      bCmdSteuerungAus=false;
    .
    .
    }
    

    bis bald
    akari



  • Danke schön!

    Ich hoffe es funktioniert damit.


Anmelden zum Antworten