Dem Post von OregonGhost sind nur zwei kleine Anmerkungen hinzuzufügen:
Über den Operator
IS kannst Du den Typ eines Objektes ermitteln.
Ist
obj z.B. ein Verweis auf ein
TObject, so kannst Du über
Quelltext
1: 2:
| if obj is TEdit then TEdit(obj).Text:='TEST'; |
abfragen ob obj ein Objekt vom Typ TEdit ist und dann über Typecasting (2.Zeile) auf die Eigenschaften und Methoden des TEdits zugreifen.
Eine case-Abfrage des Typs ist soweit ich weiß nicht möglich.
Außerdem wenn
Edit1 ein Objekt vom Typ
TEdit ist sind folgende Aussagen wahr:
Quelltext
1: 2: 3: 4: 5: 6:
| Edit1 is TObject Edit1 is TPersistent Edit1 is TComponent Edit1 is TControl Edit1 is TWinControl Edit1 is TCustomEdit |
, da TEdit ein Nachfahre zu den genannten Objekten ist und alle deren Eigenschaften ererbt!
Das empfehlenswerte Buch
Delphi in a Nutshell erklärt sehr tiefgehend die Beziehung von Objekten, deren Speicherabbildungen, Zugriffe, Vererbung, Objekthierarchien und Polymorpheismus.
"Wenn Debugging ein Vorgang ist, Fehler aus einem Programm auszubauen, dann ist Programmieren der Vorgang, Fehler einzubauen."