Announcement

Collapse
No announcement yet.

Weitergeben von Werten zwischen Formen

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

  • Weitergeben von Werten zwischen Formen

    Moin!

    Ich hab ein kleines Problem mit Delphi, aber eins nach dem Anderen.

    Meine Programmierkenntnisse in Delphi sind noch klein, ich beschäftige mich erst seit Kurzem damit.

    Nun will ich "aus Spaß" ein Vokabel-Programm schreiben.

    Mein Problem ist folgendes:
    Je nachdem welche TCheckBox (und ein Weiter-Knopf) angeklickt wurden, soll in den TLabels in Form2 was anderes stehen.
    Ich würde nun gerne wissen, wie ich dem Fenster was mitgeben kann, meine komplizierte Idee wäre einen Wert mal kurz in eine externe Datei zu schreiben, aber das muss doch auch einfacher gehen?

    Wäre nett wenn ihr mir irgendwie helfen könntet...
    Notfalls auch gerne mit Anleitungen für Unwissende^^

  • #2
    Du bindest die 2. Form in die erste mit ein über

    interfaces
    use Form2
    Christian

    Comment


    • #3
      aber gibts da nicht wesentlich elegantere Lösungen? So mal eben von einer Form in die andere zu langen kann ganz schnell in Chaos ausarten. So zumindest meine Erfahrung.

      Ich bin kein Delphi Spezialist aber einen MVC Mechanismus gibts dort doch bestimmt auch.

      Comment


      • #4
        Wüsste jetzt nicht, was das MVC Pattern damit zu tun haben könnte...
        Christian

        Comment


        • #5
          Naja... wenn sich wirklich nur ein Control an sich ändern sollte ist das ja kein Problem. Aber meistens steckt da doch mehr dahinter.
          Ich setz ein Checkbox und von irgendwas ändert sich der status. Meinetwegen von einem Datensatz von Aktiv auf Passiv.
          Das müsste ja nun auch in dem Datenobjekt abgebildet werden und auch bei allen anderen die auf dieses Datenobjekt zugreifen.
          In .NET würd ich hier z.B. eine BindingSource verwenden... alternativ ein Observer Pattern...

          Comment


          • #6
            Nun, ob ein Datenobjekt dahinter liegt wissen wir hier nicht. Hier soll offenbar in einem Fenster ein Control in Abhängigkeit eines anderen geändert werden.
            Christian

            Comment


            • #7
              naja... aber oft programmieren Leute eben so weil sie es nicht besser wissen. Sollte nur ein Denkanstoß sein.
              Mir hätte es früher mit Sicherheit auch nicht geschadet hätte mich hier und da jemand auf solche Sachen hingewiesen

              Comment


              • #8
                Im Hinblick auf die VCL und Delphi/C++Builder ist das - wenn man das Objekt nicht selbst dynamisch erzeugen will - die übliche Vorgehensweise
                Christian

                Comment


                • #9
                  Die übliche Vorgehensweise ist es sämtliche Information in irgendwelchen Controls zu speichern?
                  Ich mein ich habe auch mit dem BCB angefangen und früher auch so programmiert... allerdings rächt sich das jedesmal wieder, wenn ich nach längerer Zeit so ein Projekt aufmache und mir dann so ein leichter Schauer den Rücken hinunter läuft

                  Comment


                  • #10
                    Die übliche Vorgehensweise ist es sämtliche Information in irgendwelchen Controls zu speichern?
                    Hat doch gar keiner gesagt??

                    Die übliche Vorgehenweise um von einer Form auf eine andere zuzugreifen

                    Und klar wenn ich Informationen anzeigen will, muss ich sie in Controls ausgeben
                    Christian

                    Comment


                    • #11
                      Haarspalterei -.-

                      Wenn ich keine Datenobjekt habe, dann habe ich auch nichts anzuzeigen... was will ich auch darstellen.
                      Wenn ich in meiner Oberfläche ein Control bediene, dann muss sich zwangsläufig irgendwas an meinen Datenobjekten ändern, sonst wäre die Änderung in den Controls sinnfrei.
                      Und dann muss das Datenobjekt alle Objekte benachrichtigen (z.B. andere Controls) die diese Änderung interessieren könnte -> Observer Pattern bzw. MVC

                      Alles andere führt (vor allen Dingen in größeren Projekten) recht schnell zu viel Chaos.

                      Comment


                      • #12
                        Wenn ich keine Datenobjekt habe, dann habe ich auch nichts anzuzeigen... was will ich auch darstellen. Wenn ich in meiner Oberfläche ein Control bediene, dann muss sich zwangsläufig irgendwas an meinen Datenobjekten ändern, sonst wäre die Änderung in den Controls sinnfrei.
                        ???
                        Dem ist wohl nicht so. Nicht alles was an der Oberfläche darstellt wird hat zwangsläufig Datenobjekte. Zumal die VCL (und wir befinden und in dieser Umgebung) die als solche nicht kennt.

                        Und dann muss das Datenobjekt alle Objekte benachrichtigen (z.B. andere Controls) die diese Änderung interessieren könnte
                        Auch dieses wird hier nicht unterstützt, da sich die VCL direkt auf die WIN 32 API stützt und das Framework selbst dies nicht bietet. Hier steht das Windows Message System im Vordergrund

                        Belibt festzustellen, dass die Frage des Threaderstellers - und um die sollte es hier gehen- nichts mit MVC-Pattern zu tun hat. Lediglich die Frage wie ich von einer Fenster-Klasse auf eine andere zugreife. Dafür igbt des die zwei Methoden (statisch, dynamsich). Wenn du andere Methoden für Lösung nennen kannst, dann tue dies bitte.
                        Christian

                        Comment


                        • #13
                          Er hat geschrieben er sei Neuling und deswegen wollte ich ihm einfach nur den Weg weisen.

                          Ein Observer Pattern lässt sich wohl in jeder halbwegs modernen Programmiersprache selbst bauen und hat nichts mit einem Framework zu tun.

                          Egal... Du verstehst bestimmt was ich meine und vielleicht denkt auch der Threadersteller mal darüber nach ob er die Sache nicht vielleicht auch so lösen könnte.

                          Friede sei mit Dir

                          Comment


                          • #14
                            Danke euch, es funtkioniert.
                            Ohne MVC.
                            Mir reicht das erstmal, auch wenn sich die andere Lösung auch nicht schlecht anhört.
                            Falls ihr weiter Fachsimplen wollt: tobt euch ruhig aus^^
                            Ich verfolge es gebannt...

                            Comment

                            Working...
                            X