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.