AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten zu labeled Komponenten "wandeln"

Ein Thema von Sherlock · begonnen am 7. Mär 2014 · letzter Beitrag vom 11. Mär 2014
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.767 Beiträge
 
Delphi 11 Alexandria
 
#1

Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 10:41
Ahoi,
Ich möchte gerne einen Sack voll Komponenten verschiedenster Provenienz (deren Sourcen mir vorliegen) zu "labeled" Komponenten machen.
Der naive Schritt wäre jetzt von jeder einzelnen Komponente eine abgeleitete Variante zu erzeugen, die eben um die nötigen Label-Eigenschaften erweitert wurde. Bei zwei Komponenten ist das mit gutem Willen villeicht noch abnickbar... ich möchte das aber für vielleicht 10 Komponenten tun, und es sollte auch einfach auf Neuzugänge anwendbar sein.
Jetzt dachte ich mir, das eventuell das Decorator Pattern eine Hilfe sein könnte. Ich stelle mir als Basisklasse TComponent vor, das ich eben mit einem Label "dekoriere" und somit einen TComponentDecorator baue. Ich weiss, probieren geht über studieren, aber falls einer gleich sagen kann "das wird nix" wäre das immerhin ein Schritt Richtung Zeitersparnis

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.289 Beiträge
 
Delphi 12 Athens
 
#2

AW: Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 10:53
Klar geht das.

Kennst du noch meine brendenden Hints?
(da wo ich mal rumgespielt hatte und den FMX-Komonenten die fehlenden Hint ersetzte)


Praktisch eine Parentkomponente welche die Labels erstellt und verwaltet.
Einem Listenproperty würden dann die Labels gepsiechert (Praktisch wie beim Popummenü)
und jedes Label besitzt dann eine Eigenschaft, über welche man die gewünschte Komponente zuweist. (TDataSource=dein Label und das TDataSet ist irgendeine Komponente)

Dann noch die Freigabeeventes registrieren.
TComponent.FreeNotification und TComponent.RemoveFreeNotification, damit die Verlinkungen und eventuell auch das Label aufgeräumt werden können, wenn du eine Komponente von der Form löschst, wo ein Label dran hängt.

Und dann noch irgendwie in die Messages der Komponenten reinhängen, um auf Resize/Move/Visible/Enable-Änderungen ranzukommen und das Label entsprechend anzupassen.


(Letztes hab ich zwar keine Ahnung wie, aber das geht bestimmt irgendwie)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.767 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 10:57
Danke! Dann schau ich mir mal die brennenden Hints an...bis mir die Augen brennen

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.289 Beiträge
 
Delphi 12 Athens
 
#4

AW: Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 11:06
Nur ob die noch was bringen?

Die waren mal für FMX 1.0 geschrieben und bissl für 2.0 angepasst, wo fast alles umgebaut wurde.
Und inzwischen ist Delphi nochmal paar Versionen weiter.
Und im Gegensatz zur VCL war die Ausrichtung einfacher, da man die Koordinaten relativ zur gewünschten Komponente angeben konnte, wenn man den Parent entsprechend setzt, aber die Komponente mußte nicht "innerhalb" der Parentkomponente platziert sein, was bei der VCL (Windows-Controls) aber vorgegeben ist.
Hatte es als Beispiel für die Verlinkung genannt (auch wenn es keine all zu gute Lösung war).


Als "Vorlagen" für die Verknüfungen scheinen TPopupMenu+TMenuItem(s) und in den Items dann TDataSource=>TDataSet recht gut geeignet zu sein.
(jedenfalls sollte man da wenige Probleme bekommen und von der Bedienung her wäre es praktisch ein bekanntes Muster)

Man kann natürlich auch gern schauen, wie das z.B. bei den LiveBindings gemacht wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Mär 2014 um 11:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 11:16
Ich hatte eine längere Antwort fertig, die dann aber wieder verworfen... Jetzt bin ich unsicher, was Du willst...

VCL/FMX?
Fertiges Formular und nachträglich Labes an die Controls?
Warum nicht auf klassischem Weg (also normale Labels)?
Sollen die Labels in der dfm gespeichert werden?
Sollen sie unterschiedlich ausgerichtet und dynamisch beschriftet werden?

Nevig wäre, Labels von Hand auf´s Formular zu setzen und auszurichten. Wenn es allerdings nur statische Beschriftungen sein sollen ist es vermutlich der schnellste Weg (sofern man nicht entsprechende fertige Controls mit Label hat).

Ansonsten kannst Du so etwas wie eine Groupbox bauen, nur mit der Beschriftung links und ohne Rahmen.

Einen ganz anderen Ansatz hatte meine Layout-Komponente, die Controls ausrichten und (nachträglich) beschriften konnte. Zur Laufzeit ging das perfekt, aber die IDE wollte das Konzept nicht so recht akzeptieren.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.402 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Komponenten zu labeled Komponenten "wandeln"

  Alt 7. Mär 2014, 11:28
Nevig wäre, Labels von Hand auf´s Formular zu setzen und auszurichten. Wenn es allerdings nur statische Beschriftungen sein sollen ist es vermutlich der schnellste Weg (sofern man nicht entsprechende fertige Controls mit Label hat).
Wobei das immer neu ausrichten bei Verschiebungen bei Firemonkey ja nicht mehr nötig ist, da kann man die ja einfach an andere Komponenten antackern.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:25 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