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)?


Log in to reply