![]() |
Pagecontrol oder Frames
Guten Morgen
Ich habe vor einiger Zeit ein CRM programmiert welches ich nun komplett neu erstellen möchte. Im bisherigen Programm habe ich für die unterschiedlichen Ansichten Pagecontrols verwendet (ohne Reiter). Die Entsprechenden Tabsheets werden über eine seitliche Navigation - ähnlich Outlook aktiviert. Dies hat sich ansich bewährt und ich könnte es mir vorstellen wieder in der Art zu lösen. Es stellt sich nun die Frage, ob das ev. auch mit Frames zu lösen wäre wenn ja ob das eventuell vorteilhafter wäre (Dateigrösse usw.). Ich selber habe keine Erfahrungen in Sachen Frames. Aber vielleicht kann hier jemand näher Auskunft geben. Ich habe mittlerweilen die TMS-Koponenten gekauft und werde die bei der Entwicklung einsetzen. Danke im Voraus für die Antworten |
AW: Pagecontrol oder Frames
Hi,
der Vorteil von Frames liegt ganz klar darin, dass die dahinter liegende Unit deutlich kleiner werden, da sich die Sourcen und Komponenten ja auf verschiedene Dateien aufteilen. Aber da du bei einer Neuentwicklung die Businesslogik eh in eigene Klassen und Units implementierst fallen da nur noch ein paar Events und Komponenten an (<- das war ein Wink mit dem ganzen Zaun!) Ich habe mit Frames auch schon ein größeres Projekt umgesetzt, würde aber heute nur noch Forms einsetzen. Diese kann man über die Zuweisung des Parents (und Owners) z.B: auf ein Panel wie Frames behandeln, hat aber auch die Möglichkeit diese über Docking/Undocking aus dem Mainform raus zuziehen. GRüße |
AW: Pagecontrol oder Frames
Wir haben bei uns in der Software beides. Ich finde die Lösung von Lemmy am interessantesten, da zumindest D2007 bei Änderungen im Frame nicht immer mitkommt und man den im Parentform dann erst wieder entfernen und einfügen muss. Zudem zwingt einen die Lösung sauberer zu kapseln (siehe Zaun-Wink).
|
AW: Pagecontrol oder Frames
Hallo und vorerst mal besten Dank für eure Antworten.
Das mit den Forms tönt gut - ich brauch nur noch ein bisschen Starthilfe. Wie ist das gemeint? Ein Panel im Hauptprogramm wird mit einem anderen Formular, welches die entsprechenden Komponenten enthält verlinkt und dieses verhält sich dann wie ein Tabsheet eines Pagecontrols...? Meine Frage wie genau setze ich die Parameter? Oder geht das Ganze in Richtung MDI-Anwendung? Sorry wegen meiner Fragerei.... |
AW: Pagecontrol oder Frames
Liste der Anhänge anzeigen (Anzahl: 1)
kein Thema... ist eigentlich ganz einfach. Im Anhang eine kleine Testapp (mit viiiiiiiel Verbesserungspotential ;-))
Im Grunde baust Du ein "normales" Form, erzeugst es und setzt ein paar Eigenschaften:
Delphi-Quellcode:
Speichermanangement usw. musst Du halt entsprechend selbst in die Hand nehmen...frm := TKunden.Create(nil); frm.Parent := Panel2; frm.BorderStyle := bsNone; frm.Align := alClient; |
AW: Pagecontrol oder Frames
Wenn du das Sheet als Parent des Frames setzt, dann werden die Komponenten des Frames auf dem jeweilen TabSheet angezeigt. Was meinst du mit Parameter?
|
AW: Pagecontrol oder Frames
Super!!
Recht herzlichen Dank - da kann ich mich heranarbeiten und verschiedene Möglichkeiten testen. Mit den Parametern meinte ich eigentlich das was lemmy erklärt hat - hab mich wahrscheinlich ungenau ausgedrückt. Jedenfalls hab ich jetzt einen Anhaltspunkt.:-D Gruss Bruno |
AW: Pagecontrol oder Frames
Zitat:
|
AW: Pagecontrol oder Frames
Zitat:
|
AW: Pagecontrol oder Frames
Zitat:
|
AW: Pagecontrol oder Frames
Zitat:
Delphi-Quellcode:
frm := TKunden.Create(nil);
frm.Parent := Panel2; //frm.BorderStyle := bsNone; // kann man schon im OI einstellen? //frm.Align := alClient; frm.Show; |
AW: Pagecontrol oder Frames
Hi,
natürlich brauchts da noch ein Show (s. Testanwendung). @himitsu: klar kann man das im IO einstellen - nur sieht man das im Code schneller was gemacht werden muss. Zudem kann man das (anstelle jedesmal im Desinger einzustellen) auch schön generalisieren.... (Factory) @mkinzler: wie oben geschrieben kann man die Forms dann per Undocking raus ziehen. Geht natürlich auch mit einem Frame - dann brauchts aber wieder einen Container. Zudem gibts im Form noch ein paar Events, die ganz nützlich sind, die in den Frames fehlen... kann man selbstverständlich nachrüsten.... Und weiterhin verhindert der Einsatz von TForm, dass jemand auf die Idee kommt zur Desingzeit (weils halt geht und so schön "einfach" ist) ein Frame direkt über "Frames" in einen Container zu legen um dann irgend wann den Überblick zu verlieren, weil man anfängt im Frame an sich und im eingebetteten Frame zu ändern (was dann 2 unterschiedliche Klassen sind) Grüße |
AW: Pagecontrol oder Frames
Ich halte Formulare idR auch für günstiger als Frames.
Einige Infos findet man noch bei der Suche nach "embedded Forms". |
AW: Pagecontrol oder Frames
Zitat:
Man kann es auch einmal in der Form einstellen und muß es dann nicht überall, bei jedem einzelnen Aufruf machen. (es sei denn man erstellt die Form nicht direkt und bietet sie nur über eine entsprechende Funktion an, welche das Erstellen und das Setzen der Parameter übernimmt) Für Windows ist es fast egal, denn für das sind es beides "Fenster", genauso wie ein Edit. Aber Seitens der VCL könnte es auch mal Problemchen geben, demm diese Unterscheidet nunmal zwischen Kompoente/Frame und Form. |
AW: Pagecontrol oder Frames
Sehr interessant - ich habe mich bereits entschieden das Ganze mit Formularen zu lösen. Die Demoanwendung ist trotz der Einfachheit sehr aussagekräftig. Ich hab noch eine andere Frage - ist es möglich das Hauptmenü je nach Aktivierung des Formulars anzuzeigen bzw. auszutauschen. Ähnlich wie das in MDI-Anwendungen funktioniert. Oder kann nur mit einem Hauptmenü gearbeitet werden? Vorgesehen wäre eine Ribbon-Komponente bzw. der ToolbarPager von Tms.
|
AW: Pagecontrol oder Frames
Setze doch auf der Hauptform den Toolbar-Pager von TMS. Dann setzt Du die Forms alClient auf die Hauptform. Damit kannst Du dann den Inhalt der einzelnen Forms steuern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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-2025 by Thomas Breitkreuz