mehrere Forms im gleichen Fenster?


  • third-lion
  • 1229 Aufrufe 7 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mehrere Forms im gleichen Fenster?

    hi, ich bin noch ziemlicher Anfänger in Delphi und schreibe gerade ein Programm,wo ich auf ein Problem gestoßen bin:

    Ich habe verschiedene Forms (Form1, Form2, usw.) mit verschiedenen Komponenten(besonders Radiobuttons).
    Nun möchte ich, dass wenn man seinen klick im Radiobutton im ersten Fenster gemacht hat durch einen Button zur Form2 gelangt, die immer noch die gleichen variablen und werte besitzt, wie Form1 und sich im selben Fenster öffnet, sodass man Form1 nicht mehr sieht, man aber durchaus mit nem Button, der sich in Form2 befindet wieder zu Form1 gelangt...

    Frage natürlich: Geht das und wenn ja, wie mache ich das?

    Wäre sehr nett, wenn ihr mir bei meinem Problem helfen würdet, bei google finde ich nichts...
  • Ja, das geht.
    Zwei Möglichkeiten gibts: du schreibst das Ganze als MDI-Projekt (Multi-Document-Interface). Dann gibt es ein großes Rahmenfenster, in dem dann beliebig viele Subfenster geöffnet werden können.

    Zweite Möglichkeit: du deklarierst im ersten Fenster eine Instanz des zweiten Formulars und legst den Speicher an. Dann transferierst du alle Werte, die du in Form2 nutze möchtest, dahin (du hast ja Zugriff auf alle nicht geschützen Teile des Formulars). Dann machst du das zweite Form sichtbar und das erste unsichtbar.
    Wird im zweiten Form das Close-Ereignis ausgelöst, machst du kurz vorher wieder das erste Form sichtbar.

    Wenn das zu kompliziert war, kann ich dir ein kleines Beispiel schicken.

    Grüße
    Michael
  • erstmal vielen Dank !
    hm...sorry, war aber zu kompliziert...
    wäre nett, wenn du mir eine von den beiden Möglichkeiten(am besten die "schönere", bzw. bessere) genauer erklären könntest oder nen Beispiel schicken würdest...

    Aber trotzdem erstmal danke soweit!
    [size=1]"Halt! Wer da?"
    "Ich bin es, Artus, Sohn des Uther Pendragon, von der Burg Camelot, König aller Briten, Bezwinger der Sachsen, Herrscher über ganz England."
    "Verschwindet!"

    MFG third-lion [/size]
  • Du könntest das 2. Fenster einfach Modal anzeigen. Dann gibst du dem 2. Form einfach als Parameter nen Pointer auf das aufrufende Fenster zurück.

    Eventuell ne 2. Uses Clauses verwenden auf das aufrufende Formular (um circular unit reference zu verhindern)