Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   "Vererbung/Referenz" von Komponenten ohne Frames (https://www.delphipraxis.net/178664-vererbung-referenz-von-komponenten-ohne-frames.html)

Headbucket 20. Jan 2014 12:53

Delphi-Version: XE5

"Vererbung/Referenz" von Komponenten ohne Frames
 
Hallo,

kurz was zur Ausgangssituation: Ich habe ein PageControl auf welchem sich 5 TabSheets befinden. Auf den ersten vier Tabs werden dynamisch einige Komponenten erzeugt (Label, Editfelder, ComboBoxen, usw.). Auf dem letzten Tab möchte ich eine Übersicht über alle Komponenten der vier Tabs darstellen.
Wie lässt sich das am besten realisieren?

Eine Möglichkeit wäre natürlich, dass ich für die vier Tabs jeweils ein Frame anlege, welches ich dann auf das 5. Tab schieben kann. Da ich das ganze aber sehr oft machen muss wird es extrem unübersichtlich, wenn ich jedes mal vier Frames für die vier Tabs anlege. Aus diesem Grund habe ich die dynamische Erzeugung auch in eine einzige Unit gepackt.

Eine weitere Möglichkeit wäre eventuell die Auslagerung der dynamischen Erzeugung der Komponenten in verschiedenen Prozeduren, welche ich beim 5. Tab nacheinander aufrufe. Das Problem hierbei ist aber, dass ich die Komponenten dann jeweils doppelt erzeuge und ich irgendwie dafür sorgen müsste, dass sie "synchron" sind. Bei der doch relativ großen Anzahl an Komponenten wäre das ein ganz schöner Aufwand. Es soll ja dann z.B. auch in dem Edit-Feld auf TabSheet 1 das selbe stehen wie in der Übersicht auf TabSheet 5. Es soll auch möglich sein, dass man die Werte entweder in TabSheet 1 ändert oder in TabSheet 5.

Ich hoffe ich versteht, wie ich das meine.
Mich würde sehr interessieren, wie ihr das realisieren würdet.

Grüße
Headbucket

stahli 20. Jan 2014 13:06

AW: "Vererbung/Referenz" von Komponenten ohne Frames
 
Evtl. würde ich einfach je ein Panel in die 4 ersten Tabs legen, dort die Controls drauf und beim Wechsel auf Tab5 die 4 Panels in eine Scrollbox packen (Scrollbox als Parent zuweisen und Align setzen).

Allerdings weiß ich nicht, ob das wirklich Sinn macht (so wie ich es verstanden habe). Das 5. Tab würde wohl sehr unübersichtlich werden.

himitsu 20. Jan 2014 13:10

AW: "Vererbung/Referenz" von Komponenten ohne Frames
 
Selbst mit Frames hättest du das Problem, daß die Kompoenten dann doppelt wären, wenn du im 5. Tab den Frame nochmal erzeugst.

Nja, wie dem auch sei, du kannst in jeden Tab ein Panel legen und da alle Kompnenten drauf erzeugen, oder eben als Frame.

Und dann im Tab 5 werden diese Panels/Frames dort angezeigt. (z.B. den Parent anpassen)



Oder es kommt alles in Panels/Frames, welche als Parent den TTabControl bekommen und je nach gewähltem Tab werden die entsprechenden oder alle Panels/Frames angezeigt (Visible)

Der schöne Günther 20. Jan 2014 13:12

AW: "Vererbung/Referenz" von Komponenten ohne Frames
 
Genau wie stahli sagt finde ich ist doch sowohl das einfachste, als auch das ressourcensparendste - Oder sollen bsp. Edits ihren Textinhalt eben nicht mitnehmen oder verändert werden können?

Headbucket 21. Jan 2014 08:03

AW: "Vererbung/Referenz" von Komponenten ohne Frames
 
Vielen Dank für die schnellen Antworten

Jetzt komm ich mir etwas dämlich vor. Einfach den Parent zu wechseln ist natürlich eine super Lösung. Aber ich wär ohne euch einfach nicht auf die Idee gekommen. Vielen Dank.
Auf den einzelnen TabSheets liegt übrigens bereits jeweils erstmal eine ScrollBox, welche das TabSheet als Parent hat. Darin dann die Komponenten mit der ScrollBox als Parent. Mal sehen wie ich das am übersichtlichsten hinbekomme aber das sollte nicht besonders schwer sein.

@Der schöne Günther
Die Textinhalte sollen auf jeden fall übernommen werden - das passt also.

Danke nochmal

Grüße
Headbucket


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