Einzelnen Beitrag anzeigen

math65

Registriert seit: 26. Mär 2006
2 Beiträge
 
Delphi 7 Personal
 
#4

Re: Objekte zur Laufzeit inspizieren ( a la BlueJ )

  Alt 18. Okt 2006, 01:10
Danke, Bernhard!

Nur... die Sache ist nicht so leicht...!
Die DUnit erscheint schrecklich kompliziert,
bei JEDI hab ich nichts passendes gefunden,
und ElPack kenn ich nicht.

Vielleicht ein Beispiel für mein Anliegen:

Ich hab eine Klasse definiert:

TAuto = class(Tpersistent)
private nr: string;
private ps: integer;

procedure fahre(s: real);
procedure bremse(s: real);
end;

Würde dann gern ein Auto-Objekt erzeugen...

var auto: TAuto;
begin
auto := TAuto.Create;

... und dann i r g e n d w i e (?) herausfinden/anzeigen können, welche Datenfelder und welche Methoden dieses Auto nun hat.
Die Zeile:

edit1.Text := inttostr(auto.getinterfacetable.EntryCount);

wird zwar vom Compiler akzeptiert, liefert aber einen Laufzeitfehler (Zugriffsverletzung, Lesen von Adresse 0 ).
Sonstige nützliche/informative Prozeduren oder Funktionen hab ich bislang nicht gefunden -
bin ein wenig gefrustet...

Gibt es bzw. hast Du hierfür Hilfe???



Und als weiteres Problem: Wie könnte ich eine Methode aufrufen, von der erst zur Laufzeit (!) bekannt ist, wie sie heisst, und zwar in Form einer String-Variable??
Z.B. hätte ich:

objekt, methode: string;

Wunsch: Ausführen per ...?(objekt). ...?(methode)


Ist diese Sache prinzipiell unmöglich, weil Delphi eine Compilersprache ist und daher eine (dynamische) Interpretation von Befehlen nicht realisierbar ist???


Schöne Grüße

math65
  Mit Zitat antworten Zitat