Announcement

Collapse
No announcement yet.

Zwei Fenster gleichzeitig aktiv

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zwei Fenster gleichzeitig aktiv

    Hallo!

    In CBuilder 5 habe ich zwei Fenster, Form1 und Form2. Das zweite Fenster erscheint durch Form2->Show() über dem Hauptfenster Form1. Form2 beinhaltet ebenfalls OpenGL.

    Sowohl Form1 als auch Form2 müssen daher gleichzeitig aktiv sein, d.h. die zwei Fenster müssen die lfd. Uhrzeit oder die grafische OpenGL-Animation aktiv anzeigen können, da Form2 das grafische Interface (Datum, Uhrzeit, Buttons, auchOpenGL usw.) für Form1 beinhalten soll.

    Das müßte doch äußerst praxiselevant sein; dennoch sind nirgendwo verwertbare Informationen darüber zu erhalten. Vielleicht kann mir hier jemand helfen. Bin für jede Hilfe sehr dankbar!

  • #2
    Es kann nur einen geben. Unter Window gibt es immer nur ein aktives Fenster
    Christian

    Comment


    • #3
      Hallo Christian,

      besten Dank für Deine Antwort!

      Sowohl Form1 als auch Form2 sind aktiv, wenn Form2 aus Form1 einen fortlaufenden Wert erhält (z. B. Form2->Label1->Caption = x), wodurch sich auch auch die OpenGL Grafik auf Form2 dreht.

      Tschüss

      H

      Comment


      • #4
        Die Fenster sind vielleicht beide sichtbar, aber nur eins kann aktiv sein. Wo liegt eigentlich das Problem

        Comment


        • #5
          Praktisch gings um ein ansprechendes Interface mit einfach bedienbarer Aparatur, einem Display usw. für Input/Output.
          Dafür kommt nur eine zweite Form in Frage, weil sich diese durch Regions der Interfaceform angepassen läßt.
          Legt man Maus- oder Tastatureingaben als Maßstab für die Aktivität eines Fenster an, haben Sie sicher recht, da diese immer nur ein Fenster betreffen können.

          Einfach aus Form1 durch Form2->Label1->Caption xn (n=1,2,3...) einen fortlaufenden Wert zuzuweisen, zeugt sicher nicht von großartiger Programmiertkunst, erfüllt jedoch seinen Zweck, da die Form1 auf Input der Aparatur von Form2 regaiert, d.h. die Grafik auf Form1 ist ansteuerbar.
          Die sich auf Form2 drehende Grafik braucht nicht einmal per InvalidateRect reaktiviert werden Beide Fenster bzw. Threads sind demzufolge aktiv. Die frames rate pro Sekunde halbiert sich dadurch natürlich.

          Wie das Problem sich durch tiefere Kenntnisse eines Multithread Betriebssystems in C++ (sicher Win32 API) technisch in Bezug auf höhere Bildraten und bessern Prohgrammierstil effektiver lösen läßt, bin ich momentan überfragt.
          .

          Comment


          • #6
            Aparatur = Apparatur; Programmiertkunst = Programmierkunst;
            Prohgrammierstil = Programmierstil.

            Sorry für den Tippfehlerteufel

            Comment


            • #7
              Vielleicht ein Mißverständnis:

              "Legt man Maus- oder Tastatureingaben als Maßstab für die Aktivität eines Fenster an, haben Sie sicher recht, da diese immer nur ein Fenster betreffen können."

              Das ist das Entscheidene und das versteht man üblicherweise unter einem aktiven Fenster (analog der ensprechenden Nachricht von Windows).

              Berechnungen können schon gleichzeigtig in anderen Fenstern laufen
              Zuletzt editiert von Christian Marquardt; 08.03.2021, 18:01.
              Christian

              Comment


              • #8
                Die Grafik auf Form1 als auch die auf Form2 lassen sich auch mit dem Mauszeiger drehen. Die gleichzeitige Aktivität zweier Fenster ist daher das Entscheidende. Alles andere ist irreführend!
                Hier steht die Professionalität der Entwicklung im Vordergrund, nicht unnötige, laienhafte Ausführungen

                Comment


                • #9
                  "gleichzeitige Aktivität zweier Fenster ist daher das Entscheidende."
                  <br>
                  Das ist unter einem Windwos Betriebsystem nicht möglich!
                  <br>

                  Alles andere ist irreführend!
                  Würde ich auch sagen

                  <br>
                  Hier steht die Professionalität der Entwicklung im Vordergrund, nicht unnötige, laienhafte Ausführungen.
                  Dann poste doch in Zukunft irgendwo anders
                  :-(
                  Christian

                  Comment


                  • #10
                    Sorry, hab unter der Annahme gepostet hier ein Experten-Forum zu finden. Die Annhame ist leider falch, da dieses Niveau weder freundlich noch hilfreich ist

                    Comment


                    • #11
                      Wer nicht hören kann....

                      Was soll man sagen, man kann hier posten sovile man will, wenn die sog. "Experten" nicht hören wollen.

                      Als Experte kan man dich wohl nicht bezeichnen, denn dann würde man ja über die Dinge sprechen können.

                      Niveau weder freundlich noch hilfreich ist. Da fragt man sich doch, wer hier angefangen hat zu meckern?? Nachdem dir schon mehrere User mitgeteilt haben

                      "Es kann nur ein aktives Fenster geben"

                      Wir freuen uns, dass du hier nicht mehr posten willst
                      Christian

                      Comment


                      • #12
                        Gut Schluck

                        Comment


                        • #13
                          Richtigstellung:

                          Das x-Windowsystem ist ein Multitasking (time-sharing) Betriebssystem. Dazu zählen auch die von Microsoft.

                          Es können mehrere Programme gleichzeitig aktiv sein. Der Prozessor wechselt so schnell zwischen den Programmen (Prozessen) hin und her, dass es erscheint, als liefen alle gleichzeitig (Multitasking). Das Betriebssystem erzugt innerhalb eines Programmes mehrere Threads, die dann vom Prozessor quasi gleichzeitig ausgeführt werden.
                          Daher mußtest du einräumen: >Berechnungen können schon gleichzeigtig in anderen Fenstern llaufen<.
                          Die nicht ganz treffende Formulierung "gleichzeitige Aktivität zweier Fenster", wobei "gleichzeitig" nicht in Anführungszeichen.gesetzt wurde, ist daher als Mißverständnis hingestellt worden.

                          Zwischen den Fenstern findet der Datenaustausch per Input/Output also quasi gleichzeitig aktiv statt, d.h. zwei Anmationen auf zwei gleichzeitig geöffneten Fenstern werden auch gleichzeitig ausgeführt, wobei auch der Input/Output zwischen den Fenstern aktiv statt finden kann. Eine sowohl auf auf Form1 als auch auf Form2 sich drehende Grafik friert also nicht ein bzw. ist deaktiviert, wenn Form1 oder Form2 durch Input/Output aktiviert wird, wobei das ja nach deiner Behauptung, es kann nur einen geben bzw nur jeweils immer ein Fenster aktiv sein, der Fall sein müßte. Das ist jedoch kein Mißverständnis, sondern eine Irreführung.

                          .

                          Comment


                          • #14
                            Multitasking ist uns bekannt.

                            Es kann nur ein aktives Fenster geben
                            Günther

                            Comment


                            • #15
                              Die Thread zweier Fenster sind unabhängig

                              Comment

                              Working...
                              X