AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Komponente mit Objekten, die Eigenschaften der Komponente benötigen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente mit Objekten, die Eigenschaften der Komponente benötigen

Ein Thema von Captnemo · begonnen am 18. Sep 2014 · letzter Beitrag vom 19. Sep 2014
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 15:00
Tell me about it... Diese Lösung hat doch gerade den Vorteil daß die Liste NICHT geändert werden muß?
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 15:29
Tell me about it... Diese Lösung hat doch gerade den Vorteil daß die Liste NICHT geändert werden muß?
Auf Deutsch or in English? Blyben weer bay deutsh. This can I besser.

Zitat von Bjoerk:
TUrlaub, TKrank, TLehrgang usw. sind davon abgeleitet und überschreiben diese Methoden.
Ich lese daraus, das Du die Klassen *im Code* ableitest. Wie willst Du dann zur Laufzeit "TBetriebsausflug" und "TGrillabend" oder "TSauseOhneDenChef" anlegen?

Diese Klasse hat eh nur eine Paint-Methode und unterscheidet sich nur in der Wahl der Hintergrundfarbe und -textur sowie Textausprägung und -farbe. Vielleicht noch Sparkling-Effekte o.ä., aber das ist eine einzige banale Klasse. Über die editierbaren Eigenschaften steuerst Du das Aussehen.

Geändert von Dejan Vu (18. Sep 2014 um 15:33 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 16:20
[..] This can I besser.
Jo, das Gefühl hab ich auch..

BTW, mein Vorschlag war eher an den TE gerichtet und weniger an dich mit der Bitte um Stellungnahme..
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 17:19
Danke für die vielen Antworten.

Nur so am Rande: Das ich mir mal eine Komponente selber geschrieben habe ist Jahre her. Sprich, zur Zeit fang ich da bei Null an.

Zurück zum Thema.

Okay. Zu TLayoutTemplate oder zu Template Manager spuckt meine Hilfe so gar nichts aus. Kann mir das jemand noch mal erläutern.

Zur Darstellung:
Code:
  TEintragsTypListe (TObjectList)  <--------------------------+
   |                                                          |
   +-->TEintragsTyp (TObject)                                 |
   |    |                                                     | 
   |    +-->Bezeichnung: string;                              |
   |    +-->Farbe: TColor;                                    |
   |    +-->...                                               | (Oder nur ein TObject,
   +-->Count: Integer;                                        |  dass dann auf den
                                                              |  TEintragstyp zeigt)
  TEintragListe (TObjectList)                                 |
   |                                                          |
   +-->TEintrag (TObject)                                     |
   |    |                                                     |
   |    +-->Text: string;                                     |
   |    +-->TEintragsTypListe (TObjectList)   Zeigt auf ------+
   |    +-->EintragsTypIndex: Integer;
   +-->Count: Integer

  TUrlaubskalender (TObjectList)
   |
   +-->Eintragstypen: TEintragsTypList
   +-->Eintraege: TEintragListe
   +-->...noch ein paar globale
So hätte ich es mir vorgestellt. Das zur Laufzeit halt Eintragstypen hinzugefügt werden können.

Wenn dann aber Einträge hinzugefügt werden, muß ja irgendwie im Eintrag ein Zeiger auf die Eintragstypenliste mitgegeben werden. Das könnte man zwar auch über das OnCreate machen, sieht für mich aber ein irgendwie unschön aus.
Meine Frage zielt also darauf ab, wie man so was am elegantesten macht.

Mir fällt da grad noch einen andere Frage zu ein:
Wenn ich z.B. ein Eintrag hinzufüge, möchte ich gerne, dass die Komponente seine Paint-Routine aufruft. Da Eintrag ja eine eigene Klasse ist, kann sie ja nicht von welcher Klasse sie erzeugt ist. Oder doch?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (18. Sep 2014 um 18:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 18:47
Und genau für sowas sind doch die Collections da.
> Eine Liste von eigenen Klassen eines Typs.

Man kann das natürlich auch alles selber machen, z.B. über Objektlisten, aber wenn man das auch noch über den OI bedienen will, würde man dann noch anfangen sich einen passenden Property-Editor zu schreiben, welcher mit dieser Liste und den enthaltenen Klassen umgehen kann.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 19:30
Die wichtigsten Fragen sind aus meiner Sicht (immer) noch offen...

Wozu eigentlich eine Komponente?
Die brauchst Du ja eigentlich nur, wenn Du eine universelle Einsetzbarkeit benötigst oder wenn Du die Einträge zur Designtime eintragen willst.

Willst Du die Komponente dann zur Designtime konfigurieren (mögliche Eintragstypen einrichten) oder soll das der Enduser nach Bedarf machen dürfen.
Das hier
Zitat:
Das zur Laufzeit halt Eintragstypen hinzugefügt werden können.
würde das letztere nahelegen.

Also bringt es Dir nichts, n feste Klassen zu definieren (zu kompilieren), da der Enduser dann ja nicht weitere Klassen hinzufügen kann.
In dem Fall brauchst Du keine Komponente oder jedenfalls keine, die zur Designtime über eine Collection konfiguriert wird.
Collection vereinfachen gegenüber Objektlisten das Speichern und Bearbeiten von Einträgen in der IDE.
Wenn man diese Funktionalität nicht braucht, sollte man m.E. auch keine Collections verwenden.

Für mich klingt das eher nach einer Anwendung mit einer relationalen Datenbank und passenden Tabellen.

Natürlich kann man die Daten und Beziehungen auch in Objekten ablegen, dann muss man halt ID´s definieren, wenn Beziehungen nach dem Speichern und erneutem Öffnen wieder hergestellt werden müssen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: Komponente mit Objekten, die Eigenschaften der Komponente benötigen

  Alt 18. Sep 2014, 19:54
Wozu eigentlich eine Komponente?
Natürlich ginge das auch ohne Komponente.
Aber da ich sowas noch nie so richtig gemacht habe, wollte ich mich mal damit beschäftigen. Kann ja nicht schaden.

Und auch wenn sich dann manche Dinge etwas aufwendiger gestalten, als wenn man das ohne Komponente realisieren würde, will ich es trotzdem versuchen.

Zwar werden die Einträge und die Eintragstypen später sicherlich aus eine DB bestückt, so möchte ich trotzdem auch zur DT im IO auch welche hinzufügen können, die dann auch zur DT in der Komponente sichtbar sind. Auch wenn man es nicht zwangsläufig braucht. Ist halt gleichzeitig ein Übungsprojekt.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  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 11:05 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