| |

VB.NET - FortgeschritteneOOP Deluxe - Eigenschaften zur Laufzeit - Wie man sich selber fertig machen kann | |  | Autor: teccer | Datum: 29.09.04 09:06 |
| Ich glaube dieser Thread ist nur was für Leute, die die OOP verehren, ja mit ihr ins Bett gehen würden. Spaß bei Seite. Bei meinem neuen Objektmodell soll es möglich sein, das ein User zur Laufzeit die Eigenschaften serviert bekommt, bzw. neue Eigenschaften erstellt. Ich habe an folgende Lösung gedacht, die mir aber selber noch nicht so richtig schmeckt. Erst mal im Groben zu meiner Lösung.
Man hat eine Klasse Hosen, (immer wieder gerne genommen) die eine Collection darstellt. Früher hätte man in so einem Fall noch ne Klasse Hose mit den Eigenschaften getippt. Meine Idee war es nun, eine Klasse zu erstellen, die alle anderen Objekte nutzen. Und zwar die Klasse "_Properties". Diese ist wiederum eine Collection. Dazu gibt es noch die passende Klasse "_Property", die die Eigenschaften beinhaltet, also den Namen der Eigenschaft, welcher Datentyp, ob es ReadOnly usw. ist.
Wird nun vom Bauplan Hosen ein Objekt erzeugt, erstellt die Klasse eine DB-Verbindung, zieht sich alle Felder usw. und erstellt ein Objekt der Klasse "_Properties". Nun hat der User also ein Objekt Hosen und auch Eigenschaften, die aber eine andere Klasse zur Laufzeit erstellt hat. Nun könnte die Klasse Hosen natürlich auch eine Item-Eigenschaft besitzen, die Ihrerseits mit public Get..() as _properties auf die Eigenschaften verweisst. Erster Knackpunkt ist natürlich hier, dem User nun die Eigenschaften zu servieren, wenn er .item(1). usw. tippt. Das habe ich noch nicht ausprobiert, weil ich gerade im Büro sitze und da kommen mir solche Ideen.
Nächste Möglichkeit wäre nun noch, dass die Klasse Hose eine Methode bereitstellt, die eine neue Eigenschaft hinzufügen kann. Diese Methode würde nun die Eigenschaft in der Klasse _Properties mit Add hinzufügen und in der DB ein neues Feld kreieren, so dass mit der nächsten Objekterstellung von Hosen die neue Eigenschaft wieder vorhanden ist.
Aber, zweites Problem, was ist mit der Add-Methode in Hosen. Ganz doof gesagt, kann das Teil eigentlich nur noch einen Wert in der Parameterliste einthalten. Und zwar müsste der User in einem schema wie diesem die eigenschaften und den Wert so übergeben
object.Add("Laenge=192,Farbe=Blau")
Die Add-Methode würde nun mit zwei splits die Sache auftrennen, einmal in
Laenge=192
Farbe=Blau
Das Zweite Split würde nun das "=" als Splitter nehmen und wir hätten
Laenge=192
Farbe=Blau
und
Laenge
192
Farbe
Blau
Mit ner Schleife müsste man nun das erste Split (Array) durchlaufen und den Namen der Eigenschaft mit dem Namen der Eigenschaften aus _Proerties prüfen. Findet die Schleife was, wird die zweite Split genommen, wo der Wert steht usw. usw. Das stellt ja so alles kein Problem dar. Es sieht halt nur unschön aus, vor allem dann wenn der User nur einen Wert in einer Eigenschaft än dern will, wo wir wieder beim Pronlem von "Item" wären.
Ansonsten gefällt mir das aber schon ganz gut.
Was habt ihr noch für Ideen und Lösungen zu dem Thema. Die schickste Variante wäre ja, doch mit einer Klasse Hose zu arbeiten und dort zur Laufzeit die Property get und Sets erstellen zu können. Aber ich man mir nicht vorstellen, dass das gehen soll *lach* |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|