Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frames und tabcontrol (https://www.delphipraxis.net/105424-frames-und-tabcontrol.html)

Mark90 21. Dez 2007 12:31


Frames und tabcontrol
 
Hi leute,

ich bin gerade an einem neuen projekt. Ich wollte mal wissen, ob es sinnvoll ist bei einem TabControl frames zu verwenden. (d.h. frames werden in das tabsheet geladen).

mit sinnvoll meine ich:
- schnelle Wartung (bei problemen)
- Zukunftstauglich
- gibt es bessere Lösungen?


ich wünsche euch allen frohe weihnachten

marabu 21. Dez 2007 13:13

Re: Frames und tabcontrol
 
Hi Mark,

natürlich kannst du ein TabControl benutzen um über die Tabs verschiedene Frames in die DisplayArea des TabControls einzublenden, aber warum so umständlich? Du kannst doch gleich ein PageControl verwenden.

Frohe Weihnachten

Mark90 21. Dez 2007 14:32

Re: Frames und tabcontrol
 
thx erstmal.

du würdest ein pagecontrol verwenden und die oberfläche(buttons usw) der tabsheets auf den tabsheets selbst einstellen und nicht die oberfläche in frames auslagern?.

Elvis 21. Dez 2007 14:56

Re: Frames und tabcontrol
 
Zitat:

Zitat von Mark90
du würdest ein pagecontrol verwenden und die oberfläche(buttons usw) der tabsheets auf den tabsheets selbst einstellen und nicht die oberfläche in frames auslagern?.

Kann ich mir nicht vorstellen, dass er das meinte.
Du kannst deine Frames auf das PageControl werfen.

Mark90 21. Dez 2007 15:08

Re: Frames und tabcontrol
 
@elvis wäre das sinnvoll oder nicht?

Könnte vielleicht noch jemand ( der damit ein bisschen Ahnung hat) einen Kommentar dazu abgeben, ob frames hier geeignet wären!

PS.: mit geeignet bzw. sinnvoll meine ich:
- schnelle Wartung (bei problemen)
- Zukunftstauglich
- gibt es bessere Lösungen?

Mark90 21. Dez 2007 22:29

Re: Frames und tabcontrol
 
Zitat:

Zitat von Mark90
@elvis wäre das sinnvoll oder nicht?

Könnte vielleicht noch jemand ( der damit ein bisschen Ahnung hat) einen Kommentar dazu abgeben, ob frames hier geeignet wären!

PS.: mit geeignet bzw. sinnvoll meine ich:
- schnelle Wartung (bei problemen)
- Zukunftstauglich
- gibt es bessere Lösungen?

hat sich hier noch niemand diese frage gestellt?

webcss 22. Dez 2007 00:08

Re: Frames und tabcontrol
 
Die Auslagerung von Dialogelementen in Frames macht immer dann Sinn, wenn abzusehen ist, daß
a) diese an mehreren Stellen im Programm verwendet werden
b) du das Layout evtl. irgenwann umbaust

unter diesen Voraussetzungen erleichtert Dir diese Arbeitsweise viel Arbeit.

Wahrscheinlich gibts auch noch andere Gründe oder Argumente, aber diese sind für mich ausreichend :mrgreen:

Mark90 22. Dez 2007 09:33

Re: Frames und tabcontrol
 
Zitat:

Zitat von webcss
Die Auslagerung von Dialogelementen in Frames macht immer dann Sinn, wenn abzusehen ist, daß
a) diese an mehreren Stellen im Programm verwendet werden
b) du das Layout evtl. irgenwann umbaust

unter diesen Voraussetzungen erleichtert Dir diese Arbeitsweise viel Arbeit.

Wahrscheinlich gibts auch noch andere Gründe oder Argumente, aber diese sind für mich ausreichend :mrgreen:

Danke genau sowas wollte ich hören.

Pfoto 22. Dez 2007 09:43

Re: Frames und tabcontrol
 
Hallo Mark90,

hier noch mein Senf dazu:

ich versuche alles so modular wie möglich aufzubauen,
d.h. also nicht nur Plugins zu verwenden, sondern auch
die Oberfläche des Hauptprogramms in Stücken aufzubauen
(da hier bereits mehrere PageControls bzw. Pages im
verwendet werden)

Da ich mit SkinKomponenten arbeite muss ich zwar den Umweg
über Forms anstatt Frames machen, aber es läuft ja auf das
gleiche raus.

Zumindest hat man so den zugehörigen Code, der mit den
Controls auf dem Form verknüpft ist, in einer Unit und kann
das Layout der GUI leichter modifizieren.

Gerade im MainFrom war bei mir früher sonst auf Dauer
Kraut und Rüben, da alleine die Events der Controls schon
viele Zeilen dazubrachten und man verrückt wird, wenn man
sämtliche Behandlung der Control in separaten Units
behandeln will.


Gruß
Pfoto

Mark90 22. Dez 2007 11:04

Re: Frames und tabcontrol
 
Zitat:

Zitat von Pfoto
Hallo Mark90,

hier noch mein Senf dazu:

ich versuche alles so modular wie möglich aufzubauen,
d.h. also nicht nur Plugins zu verwenden, sondern auch
die Oberfläche des Hauptprogramms in Stücken aufzubauen
(da hier bereits mehrere PageControls bzw. Pages im
verwendet werden)

Da ich mit SkinKomponenten arbeite muss ich zwar den Umweg
über Forms anstatt Frames machen, aber es läuft ja auf das
gleiche raus.

Zumindest hat man so den zugehörigen Code, der mit den
Controls auf dem Form verknüpft ist, in einer Unit und kann
das Layout der GUI leichter modifizieren.

Gerade im MainFrom war bei mir früher sonst auf Dauer
Kraut und Rüben, da alleine die Events der Controls schon
viele Zeilen dazubrachten und man verrückt wird, wenn man
sämtliche Behandlung der Control in separaten Units
behandeln will.


Gruß
Pfoto

danke :-D

aber wie kann man auf der mainform andere teilforms verwenden? oder hab ich das falsch verstanden?

Pfoto 22. Dez 2007 11:32

Re: Frames und tabcontrol
 
Zitat:

Zitat von Mark90
danke :-D

aber wie kann man auf der mainform andere teilforms verwenden? oder hab ich das falsch verstanden?

Ich verwende diese Procedure:
Delphi-Quellcode:
  procedure FormToControl(aForm: TForm; aControl: TWinControl; aAlign: TAlign);
  begin
    aForm.Close;
    aForm.BorderStyle:= bsNone;
    aForm.Parent:= aControl;
    aForm.Align:= aAlign;
    aForm.Show;
  end;
Damit kannst du jeden Nachfahren von TWinControl als Aufnahme-Container festlegen
und die übergebene Form ausrichten.

Bei einer leeren Mainform könntest du z.B. zwei Panels einfügen,
diese nach Wünschen ausrichten und z.B. mit einem Splitter trennen.
Dann bei Programmstart die Forms dort hineinladen.

Bei Frames hast du den Vorteil, dass du diese schon zur Designzeit
plazieren kannst. Du hast also schon einen visuellen Eindruck
vom Gesamtbild und es verkürzt sich vielleicht auch ein wenig die
Ladezeit weil das Plazieren beim Programmstart wegfällt.

Gruß
Pfoto

marabu 22. Dez 2007 16:30

Re: Frames und tabcontrol
 
Hallo,

Zitat:

Zitat von Mark90
du würdest ein pagecontrol verwenden und die oberfläche(buttons usw) der tabsheets auf den tabsheets selbst einstellen und nicht die oberfläche in frames auslagern?.

so habe ich es geschrieben und so habe ich es auch gemeint. Ein TFrame ist ein Container wie ein TTabSheet auch. Das besondere an einem Frame ist die "problemlose" Verwendung an mehreren Stellen. Das kann eine andere Form desselben oder eines anderen Programms sein oder auch die Verwendung durch andere Team-Mitglieder. Ohne entsprechende Architekur-Entscheidungen oder Team-Strukturen ziehst du keinen besonderen Nutzen aus einem Frame, da andere Container-Typen deine dann noch verbleibenden Anforderungen einfacher und somit besser erfüllen.

Über die Zukunftssicherheit von TFrame mache ich mir keine Gedanken - bevor eine Architekturkomponente wie TFrame fallen gelassen wird, wirst du ganz andere Probleme mit deinen Projekten bekommen.

Was die Wartbarkeit deiner Projekte angeht, so bedenke: Egal, ob mit oder ohne Frames gearbeitet werden soll, wird ein erfahrener Programmierer das jeweilige Projekt mitunter so implementieren, dass du beim Vergleich zweifeln wirst, ob es sich wirklich um dieselbe Aufgabenstellung handelt. Mit anderen Worten: Du kannst zwar die Wartbarkeit durch die Wahl einer alternativen Komponente in engen Grenzen beeinflussen, aber einen viel größeren Einfluss auf die Wartbarkeit haben die abstrakteren Ansätze, die dann nicht nur auf lokale Verbesserungen, sondern auf das ganze Projekt, besser noch auf alle Projekte zielen - Stichwort: Style Guide.

Freundliche Grüße

Mark90 22. Dez 2007 19:43

Re: Frames und tabcontrol
 
@marabu und pfoto: vielen dank für eure antworten. Sie haben mir weitergeholfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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