mehrere Dialoge mit VCL. Wie macht man das sinnvoll?



  • Hi!

    Ich habe mit VCL ein wenig experimentiert.

    Beispielsweise wollte ich eine Anwendung erstellen, die drei verschiedene DIalogmasken (TForms) verwendet.

    Wenn ich zwischen den Masken hin- und hernavigieren will, dann schalte ich die Forms einfach mit setVisible() sichtbar bzw unsichtbar.

    Ist diese vorgehensweise sinnvoll? Wie sollte eine sinnvolle Architektur einer Anwendung mit beispielsweise mehreren Dialogfenster, einem Stammmenue und eventuell einer dynamischen Toolbar und einer statischen Statusbar aussehen???

    Kann mir jemand einen Minirahmen mit einem kleinen Menue und nur 2-3 Forms als Beispiel basteln? Einfach nur den Rahmen ohne Code (ausser vielleicht den Dialogwechsel wenn man einen Menuepunkt auslöst).

    Im Prinzip bin ich selbst fit in C++ habe aber kaum Erfahrung mit VCL und Borland, daher wäre ich dankbar wenn mir jemand einen kleinen Rahmen senden würde, damit ich beurteilen kann ob meine "Bastellösung" eigentlich sinnvoll ist.

    merci...



  • Hallo

    Du kannst auch TForm::Show bzw ::ShowModal benutzen.
    Ansonsten : Hast du denn mit deinem Konzept irgendwelche Probleme? Ws willst du genau wissen?

    bis bald
    akari



  • ne, es gibt keine Probleme.

    Ich war(bin?) mir nur nicht sicher, ob man es so macht wie ich es mache. Ich verwende ja verschiedene Forms die ich mit Show (bzw. setvisible) ein- und ausblende.

    Wenn das der optimale Weg ist, dann hat sich meine Frage erledigt...



  • Stell Dir die Frage so:

    Ist es für meine Anwendung optimal, am Beginn der Anwendung alle Fenster/Dialoge zu erzeugen und im Speicher zu halten.
    Das bedeutet
    - "längerer" Start
    - "mehr" Speicherplatzverbrauch
    - weniger Ladezeit zur Ausführung
    - ggf. notwendige Synchronisationen mit anderen Programmteilen

    Ist es für meine Anwendung optimal:
    - schneller Start
    - weniger Resourcenverbrauch
    - "längere" Ladezeit während Ausführung

    Beides kann richtig sein.

    Bei den heutigen Rechnern und Deinem Testprogramm, sollte weder das eine noch das andere zu merken sein. 😉 Aber prinzipiell ...



  • Eine andere Idee wäre doch nur einen Form zu verwenden und ständig irgenwelche Container (Panels beispielsweise) sichtbar bzw. unsichtbar zu schalten oder???

    Wie ist es mit der Komponente TPageControl ??? DIe habe ich noch nicht verwendet. Ist das sowas wie ein Notebookcontrol bei dem man die Notebookreiter und den -rahmen verstecken kann???

    Ich vermute mal, dass die Variante mit den unterschiedlichen Panels wohl am sinnvollsten ist wenn man nur wenige Dialoge mit immer dem gleichen Menue erzeuugen will oder??



  • Es gibt einen Unterschied zwischen Visible = true und Show(). Bei Show() wird das Fenster automatisch in den Vordergrund gesetzt.

    Anakin77 schrieb:

    Eine andere Idee wäre doch nur einen Form zu verwenden und ständig irgenwelche Container (Panels beispielsweise) sichtbar bzw. unsichtbar zu schalten oder???

    Dafür verwendet man im Regelfall TFrame.
    Aber ich sehe nicht keinen Sinn darin, nur eine Form zu haben und dieses dann zur Laufzeit permanent anzupassen. Zumindest nicht generell 'Eine-Form-für-Alles'.


Anmelden zum Antworten