AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie gehe ich am besten mit Frames um?

Ein Thema von guidok · begonnen am 4. Dez 2007 · letzter Beitrag vom 5. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 14:54
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
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 14:56
Zitat von guidok:
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
Ist eine TPageControl nichts für dich?! ^^

Das Erzeugen und Freigeben ist ggf. langsam und schlimmer als das im Speicher behalten ^^ *find*
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 14:57
Gegenfrage: Warum nicht MDI?
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#4

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:06
Zitat von Nuclear-Ping:
Gegenfrage: Warum nicht MDI?
Weil ich damit erst recht noch nichts gemacht habe und die Frames eigentlich schon ganz gut finde. MDI bietet mir doch den Komfort einzelne Formulare innerhalb meines Hauptformulars zu verwenden, also so wie Dokumente unter Word, oder irre ich mich hier? Persönlich finde ich das für meinen Zweck eher unhandlich, ich möchte lieber zwischen Bildern umschalten können und glaube das ich da mit Frames besser bedient bin als mit MDI (womit ich das sicher auch realisieren könnte).

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.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#5

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:10
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. *duck*
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:11
Zitat von guidok:
Dazu müsste ich allerdings wissen, welchen Frame ich gerade anzeige. Wie kriege ich das raus? Wie macht ihr das mit den Frames?
Wieso musst du wissen welchen Frame du gerade anzeigst?
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.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:13
Zitat von Nuclear-Ping:
Gegenfrage: Warum nicht MDI?
Weil MDI "out" ist. Es ist weitaus unübersichtlicher als zB. Tabs *find*

Zitat von guidok:
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.
Jaja, das war mir klar. Ich meinte die sollst das PageControl als Grundlage nehmen und auf jede Seite ein Frame machen.
Eben als Lösung für
Zitat von guidok:
immer sichtbar und unsichtbar
und
Zitat von guidok:
Dazu müsste ich allerdings wissen, welchen Frame ich gerade anzeige
Mache ich auch so. Geht eig. ganz gut (außer das Frames selber etwas tückisch sind) ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:21
Zitat von Nuclear-Ping:
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. *duck*
verpönt ist das falsche wort - depricated lautet das richtige. Du weißt also nicht wie lange es noch von Windows oder zukünftigen delphi-ids unterstützt wird.
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#9

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:30
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:
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.
zwar nicht verstanden, aber ich werde es schon irgendwie hinkriegen.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#10

Re: Wie gehe ich am besten mit Frames um?

  Alt 4. Dez 2007, 15:40
Zitat von SirThornberry:
Zitat von Nuclear-Ping:
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. *duck*
verpönt ist das falsche wort - depricated lautet das richtige. Du weißt also nicht wie lange es noch von Windows oder zukünftigen delphi-ids unterstützt wird.
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.
Ah ok, danke. Gut zu wissen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz