Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komponenten zu labeled Komponenten "wandeln" (https://www.delphipraxis.net/179444-komponenten-zu-labeled-komponenten-wandeln.html)

Sherlock 10. Mär 2014 07:50

AW: Komponenten zu labeled Komponenten "wandeln"
 
Hallo Helmi,
wunderschön. Sowas habe ich ja auch vor. Mit dem Unterschied, daß ich nicht für jede weitere gelabelte Komponente den gleichen Code kopieren möchte. Da muss es doch was von Ratioph...äh von den Freunden aus der GoF geben. Ich dachte eben an das Decorator Pattern, weil ich (eventuell zu bildlich denkend) das Label für die Dekoration eines Controls halte. Ich setze mich heute wieder ran, und schau ob ich es nicht doch noch hinbekomme. Ich will ja auch was lernen ;) ISt ja eigentlich fast fertig, es fehlt schließlich nur die Anzeige des Labels.

Sherlock

WoGe 10. Mär 2014 16:14

AW: Komponenten zu labeled Komponenten "wandeln"
 
Wenn es darum geht das Decorator Pattern hier zu verwenden, ist mein Ansatz wahrscheinlich falsch.
Aber waren die Frames nicht auch dazu gedacht, genau so was zu realisieren?

Ein Frame der ein TLabel und ein TxxxxEdit enthält - samt der ganzen Logik die dazu benötigt wird?

Grüße
wo

stahli 10. Mär 2014 16:25

AW: Komponenten zu labeled Komponenten "wandeln"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Falls Du es mal testen willst, hier doch mal mein Ansatz.
(Einfach die Formulargröße soweit verkleinern dass die Contros zusammengeschoben werden und mehrfach Button4 drücken.)

Es werden Rahmen- bzw. Beschriftungscontrols dynamisch hinter die eigentlichen Controls platziert, ohne dass diese in irgendeiner Weise verändert werden.

Die Umschaltung des "Beschriftungsstiles" war grundsätzlich in einem Komponenteneditor zur Designtime vorgesehen. Die Eigentliche Komponente wird in meinem Fall verkleinert, so dass sie in den Rahmen passt (und die Komponente incl. Rahmen immer den gleichen Platz in ihrem Umfeld braucht).

Im Formular werden die dynamisch erzeugten "Rahmenkomponten" nicht gespeichert, sondern nur die Regeln, die für das Ausrichten und Beschriften gelten sollen.

Zur Laufzeit klappte das alles super. Innerhalb der IDE nicht so.

Es ist also m.E. nicht ganz so einfach, das dynamisch zu lösen, ohne Controlderivate zu verwenden. Immerhin musst Du ja auch den Beschriftungstext und die Ausrichtung irgendwie im Formular speichern.

Zeig mal ein paar Screenshots, wenn Du´s fertig hast...

Sherlock 11. Mär 2014 09:29

AW: Komponenten zu labeled Komponenten "wandeln"
 
Ich habe das Thema begraben, da es mit dem decorator pattern nicht mit vertretbaren Aufwand umsetzbar ist. Im Prinzip liegt es an der VCL. Es wäre ein Interface für TWinControl nötig, das als Grundlage für den Decorator dienen würde. Oder aber es müsste Mehrfachvererbung in Delphi geben...auch das gibts nicht. Also hab ich es beiseite gelegt und würde es über die althergebrachte Methode machen. Dabei werde ich halt versuchen so viel code wie möglich wiederzuverwenden, aber... elegant ist anders.

Ich danke Euch für Eure Ideen! :thumb:

Sherlock

Sir Rufo 11. Mär 2014 09:45

AW: Komponenten zu labeled Komponenten "wandeln"
 
Bau dir doch einen Container (abgeleitet von Delphi-Referenz durchsuchenTCustomPanel) und bestück das mit allem was du benötigst. Die Controls kannst du dann einfach da rein klatschen und gut ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr.
Seite 2 von 2     12   

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