![]() |
Wie gehe ich am besten mit Frames um?
Hallo erst mal!
Ich schreibe eine Anwendung und möchte für verschiedene Ansichten, z.B. Projektansicht, Administration, usw. Frames verwenden. Diese sollen dann über einen Toolbar angewählt und im Hauptformular angezeigt werden. Der Vorteil ist dabei, dass ich die Ansichten entspannt zur Entwurfszeit designen kann und in das Gesamtkonzept einbette. Das funktioniert auch prinzipiell, das Hauptformular als Parent für den Frame zuweisen und damit erscheint er auch schon. Ich habe jetzt allerdings mehrere verschiedene und bin mir nicht ganz sicher, wie ich das handeln soll. Ich könnte beim Erzeugen des Formulares alle Frames gleich mit erzeugen und immer sichtbar und unsichtbar setzen, je nach Bedarf. Jetzt komm ich allerdings noch aus einer Zeit, als man noch sparsam mit dem Speicher umging und einige Frames werden sicher sehr selten benötigt. Soll ich also die Frames erst erzeugen, wenn ich sie benötige und anschließend wieder entfernen? Dazu müsste ich allerdings wissen, welchen Frame ich gerade anzeige. Wie kriege ich das raus? Wie macht ihr das mit den Frames? Fragend :?: Guido |
Re: Wie gehe ich am besten mit Frames um?
Zitat:
Das Erzeugen und Freigeben ist ggf. langsam und schlimmer als das im Speicher behalten ^^ *find* |
Re: Wie gehe ich am besten mit Frames um?
Gegenfrage: Warum nicht MDI?
|
Re: Wie gehe ich am besten mit Frames um?
Zitat:
Ja PageControl würde auch gehen, aber der (für mich) riesige Vorteil von Frames ist, dass dieser in einer eigenen Unit gespeichert wird und mein Quellcode nicht komplett in einer Datei steckt. Das wird mir schnell zu unübersichtlich. So kann ich meine Anwendung auf verschiedene Dateien verteilen (nach Funktionalitäten) und das finde ich echt gut und wirklich entspannend, weil ich mich immer nur um einen Bereich kümmern und den Rest nicht beachten und sehen muss. |
Re: Wie gehe ich am besten mit Frames um?
Hm ok, stimmt. Für deinen Fall sollten Frames besser sein.
Mit einer TPageControl kannst du auf jeder Page einen Frame einbetten. TNotebook gänge auch noch ... das ist aber von Win 3.1 und daher etwas "verpönt". Verwende es persönlich aber auch ganz gern mal, vorallem da wo man - wie in deinem Fall - verschiedene Seiten darstellen will, aber keine Reiter möchte. Aber keine Ahnung, ob man die beim TPageControl ausblenden könnte. Hab da nichts gefunden oder vlt. übersehen. :mrgreen: *duck* |
Re: Wie gehe ich am besten mit Frames um?
Zitat:
Du könntest einen Aufzählungstypen bzw einen Set erstellen, falls es mehrere Frames gleichzeitig geben kann. Machst eine Feldvariable vom Aufzählungstypen bzw. vom Set und weisst dieser Variablen die sichtbaren Fenster bzw. ihren Gegenpart als Aufzählungstyp zu. Ich hab nur nicht verstanden wieso du wissen musst welchen du gerade anzeigst. Also ich persönlich erstelle immer eine Instanz des jeweiligen Frames und weise ihm den Anzeigebereich als Parent zu, wenn ich den Frame nicht mehr brauche gebe ich ihn frei. Aber auch das mache ich nicht in jedem Fall, es gibt ab und an Frames, die ziemlich viel Info beinhalten, die ich bei einer Neu-Erzeugung aus Dateien, Datenbanken usw. holen müsste, solche Frames geb ich nicht frei, sondern setze nur den Parent auf nil und lasse ihn im Speicher. Wenn ich ihn wieder brauche weise ich ihm wieder einen Parent zu. |
Re: Wie gehe ich am besten mit Frames um?
Zitat:
Zitat:
Eben als Lösung für Zitat:
Zitat:
|
Re: Wie gehe ich am besten mit Frames um?
Zitat:
Beim PageControl kann man die Reiter auch ausblenden, sogar für jede Page einzeln. Dazu einfach bei jedem TabSheet das Property TabVisible setzen. Zudem kann dann beim PageControl selbst der Style noch gesetzt werden so das der 3D-Effekt verschwindet. |
Re: Wie gehe ich am besten mit Frames um?
Ich denke ich werde es so ähnlich machen, wie Tyrael es vorschlägt. Häufig benötigte Ansichten halte ich im Speicher und die anderen erzeuge ich nach Bedarf.
So ganz habe ich das: Zitat:
|
Re: Wie gehe ich am besten mit Frames um?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz