If Anweisung mit Methode als Bedingung



  • Hi,

    ich habe eine Methode mit insgesamt zwei if-Anweisungen darin, dass ganze soll etwa wie folgt ablaufen:

    void METHODE ()
    {
    
    if(Methode A wurde aktiviert)
    {
    Aktiviere dies
    }
    
    if (Methode B wurde aktiviert)
    {
    Aktiviere das
    }
    
    }
    

    Ist wahrscheinlich ne ziemliche Noob-Frage 😃 , aber kann mir jemand sagen wie ich das umsetze?


  • Mod

    Da gibt's viele Designmuster, die solches und ähnliches erreichen. Beschreib mal, worum es konkret geht, nicht wie du es umsetzen möchtest, dann kann man dir besser helfen.



  • Da du von Methode und nicht von Funktion sprichst, denke ich mal du möchtest das mit Klassen?

    class A
    {
      enum Choice
      {
        choice_none, 
        choice_b, 
        choice_a
      } choice_;
    public:
      A()
        : choice_(choice_none)
      {}
      void a()
      {
        choice_ = choice_a;
      }
      void b()
      {
        choice_ = choice_b;
      }
      void foo()
      {
        if (choice_ == choice_a)
        {
        }
        else if (choice_ == choice_b)
        {
        }
        else
        {
        }
      }
    };
    
    int main()
    {
      A a;
      a.b();
      a.foo();
    }
    


  • Es geht darum dass ich zwei pushButtons in meiner Benutzeroberfläche habe:

    Der eine um ein neues Verzeichnis mit Unterverzeichnissen anzulegen und der andere um ein bereits bestehendes Verzeichnis zu laden.
    Der Pfad eines neuen Verzeichnisses wird unter dem QString erstellterOrdner abgelegt, der Pfad eines geladenen Verzeichnisses unter dem QString geladenerOrdner.

    Nun muss ich im folgenden ein Programm, dass wiederum mit einem dritten pushButton aktiviert wird mit QProcess ablaufen lassen.

    ---> Wenn (if) ich ein neues Verzeichnis erstellt habe, dann soll die METHODE (siehe Code erster Beitrag) ins Verzeichnis mit QString erstellterOrdner wechseln und dann Programmausführung in diesem Verzeichnis, wenn (if) ich aber ein Verzeichnis geladen habe, dann soll die METHODE ins Verzeichnis mit QString geladenerOrdner wechseln und darüber dann Programmausführung.

    Ich könnte auch zwei pushButtons für die Programmausführung machen. Das wäre aber unschön.

    Nachtrag:

    Da du von Methode und nicht von Funktion sprichst, denke ich mal du möchtest das mit Klassen?

    Also ich ging bisher immer davon aus, dass sei das gleiche, wobei man beim Programmieren eher von Methoden spricht (Mathematik: Funktion)...



  • Nach dem evtuellen anlegen des Verzeichnisses verhalten sich abfolgen doch exakt gleich!? 😮



  • Nach dem evtuellen anlegen des Verzeichnisses verhalten sich abfolgen doch exakt gleich!? 😮

    Ja nachdem was ich geschrieben habe, hast Du recht, aber der Quelltext ist dann doch noch um einiges komplexer!

    Obwohl ich seh grad es ginge eventuell auch wenn ich einfach in den Methoden für das Anlegen und das Laden eines Verzeichnisses schon immer direkt in das entsprechende Verzeichnis wechsle.

    Könnt ihr mir sagen, ob ich damit in ein Verzeichnis wechsle:

    QDir Pfad;
    Pfad.cd (erstellterHauptordner);
    

    siehe http://developer.qt.nokia.com/doc/qt-4.8/qdir.html#cd

    Sorry wegen des Umweges, aber hatte es zuerst nunmal anders im Sinn.



  • oben gibts ein forum für QT



  • Ok Leute, hat sich damit erledigt. Hab die Frage im Qt Forum gestellt.
    Danke.



  • Chaka schrieb:

    Ja nachdem was ich geschrieben habe, hast Du recht, aber [...]

    palm->hit( face );



  • Nachtrag:

    Den Quelltext von cooky451 hab ich jetzt trotzdem benötigt. An einer anderen Stelle zwar, aber zum gleichen Zweck. 😃

    palm->hit( face );
    

    Lustisch LOL. 😃



  • Wie wärs mit signals? boost::signal? Oder Qt/connect (da du ja scheinbar damit arbeitest)?


Anmelden zum Antworten