AGB  ·  Datenschutz  ·  Impressum  







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

Klassen zur Laufzeit dynamisch erweitern

Ein Thema von Captnemo · begonnen am 16. Okt 2012 · letzter Beitrag vom 18. Okt 2012
Antwort Antwort
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 17. Okt 2012, 13:58
Natürlich kann man per Hand die RTTI umschreiben, Speicheranweisungen anpassen uvm., aber sowas macht man nicht.
Macht m.E. auch keinen Sinn. Da die Eigenschaften beim Compilieren nicht bekannt sind, können sie im Source-Code auch nicht vorkommen.

Man sollte erstmal klären, was mit diesen Eigenschaften und ihren Werten eigentlich alles passieren soll (Eingeben, Speichern, Laden, Ausgeben). So ist das Thema etwas sehr schwammig.
In .Net (genauer gesagt WPF) gibt es die sogenannten Dependency Properties. Sowas kann durchaus Sinn machen, auch wenn man nicht direkt im Sourcecode darauf zugreifen kann (im direkten Sinn von myObject.MyProperty meine ich).

Mit meiner abgespeckten Delphi Implementierung davon kann man durchaus Klassen mit Eigenschaften erweitern (intern über RTTI Erweiterungen).
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 17. Okt 2012, 14:36
Es gibt aber auch noch Custom Variant Type (Beispiel TDataSet)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 17. Okt 2012, 18:59
Nur mal so: Jedes TDataset implementiert dieses Verhalten (zur Laufzeit dynamisch erweiterbare Eigenschaften).
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#4

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 17. Okt 2012, 22:27
Nur mal so: Jedes TDataset implementiert dieses Verhalten (zur Laufzeit dynamisch erweiterbare Eigenschaften).
Da war doch mal was...
A Magical Gathering – Part 1
A Magical Gathering – Part 2
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 18. Okt 2012, 00:46
In PHP5 kann man z.B. Property im Code verwenden, welche es garnicht gibt. (das wird dann über die Methoden _get und _set behandelt)

In Delphi kann man soein Verhalten auch verwenden, wenn man seine Objekte in einem OleVariant verpackt, aber leider gibt es dort dann keine Autovervolständigung im Codeeditor.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#6

AW: Klassen zur Laufzeit dynamisch erweitern

  Alt 18. Okt 2012, 08:51
Ich glaube, wir kommen von dem eigentlichen Thema etwas ab. Wenn ich das richtig sehe, ist es der Endanwender, der diese zusätzlichen Eigenschaften definiert. Demnach kann der Entwickler diese nicht kennen und sie können im Source-Code gar nicht vorkommen - es sei denn, man vereinbart schon mal die Namen (aber dann könnte man sie auch gleich implementieren). Daher braucht man auch kein Verfahren, wie der Compiler mit ihnen umgehen kann.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 01:59 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