Thema: Delphi Generisches Formular

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: Generisches Formular

  Alt 16. Nov 2010, 20:07
Einspruch!
Eine Liste vom Objekt TControl oder eine Liste von Integern - eine Liste hat ganz definierte Operationen: Einfügen, über einen Index zugreifen, Löschen, Anzahl ermitteln, Zwei Elemente vertauschen...
Nur weil man bei einer Liste ganz bestimmte (abstrakte )Operationen kennt, die unabhängig von Datentyp sind, ist es möglich davon ein Template zu erzeugen.
Das Template bringt dann "nur" noch die Typsicherheit; schliesslich könnte man das Alles auch mit TObjectList oder TList erreichen (ohne Typsicherheit).
Das Template braucht den Datentyp nicht zu kennen; es verwaltet ledigt Instanzen eines beliebigen Datentyps in einer Liste.

Aber was sind die definierten Operationen eines Formulars?
Vielleicht "Anzeigen" und "Ändern".
Wie aber soll ein einziges Formular als Template das bewerkstelligen ohne tieferes Wissen über den Datentyp?
Man kann nicht etwas anzeigen, was man nicht kennt.
Über RTTI kann man published Properties und Events anzeigen und sogar verändern.
Das wäre dann ein Runtime-Objektinspektor.

Aber welchen Sinn würde dann TInspectorForm<TSpielfeld> oder TInspectorForm<TGameHistory> machen?
In dem Fall wäre die Typsicherheit völlig nutzlos, denn man braucht doch nur ein normales TInspectorForm und kann dann beliebige Objekte übergeben, anzeigen und ändern.


PS: ich glaube der Knackpunkt ist:
Eine Template-Klasse muss an anderer Stelle benützt werden, damit die Typsicherheit einen Sinn ergibt.
Ein TList-Template kann sehr häufig von anderem Code verwendet werden.
Es ist Bestandteil der Bussineslogik.
Ein Formular bildet dagegegen den Endpunkt, das äusserste Blatt.
Es gibt keine Bussineslogik, die ein Formular benützt sondern im Gegenteil Formulare benützten Bussineslogik.
Daher braucht ein Formular keine Typsicherheit.
Andreas

Geändert von shmia (16. Nov 2010 um 20:25 Uhr)
  Mit Zitat antworten Zitat