AGB  ·  Datenschutz  ·  Impressum  







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

RTTI von Methoden ab Delphi ??

Ein Thema von Gruber_Hans_12345 · begonnen am 4. Aug 2007 · letzter Beitrag vom 4. Aug 2007
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#1

RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 11:35
Bevor ich mich nun in die Teifen von RTTI und Methoden sachen stürze, weiss jemand vielleicht ab welcher Delphi Version das überhaupt funktioniert?

Ich möchte gerne von einer meiner Klassen alle published methoden rauslesen, und davon die PARAMETER auslesen.

Die Funktionsnamen bekomme ich alle richtig raus, aber wenn ich die Parameternamen rauslesen möchte, dann bekomme ich nur folgendes :

Code:
Published methods in TMyClass
function FourthPublished({??});
procedure FifthPublished({??});
function SixthPublished({??});
das ist mit TestPubMethod von Hallvard getestet, ich verwende Delphi 6, kann es sein, das die benötigten infos erst ab einem neuerem Delphi drinnen sind?
In anderen Beispielen wird zb auch folgender Compilerdirective verwendet {$METHODINFO ON} ... die kennt Delphi 6 auch nicht, D6 kennt nur {$M+} {$TYPEINFO ON}
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 12:48
Also in Delphi 7 gibt es tatsächlich die Compilerdirektive $Methodinfo (hab ich bisher noch nie gebraucht).
Und sie bewirkt, dass zu den published Methoden auch die Parameter mit gespeichert werden. (allein mit $M+ bzw. $TYPEINFO on werden nur die Methodennamen ohne Methodentyp und ohne Parameterangaben gespeichert).

Allerdings fand ich die Informationen zu den Parametern beim ersten drüberscheuen etwas anders angeordnet als es Hallvard beschreibt
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#3

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 13:14
ah danke, dann kann ich es wohl mit delphi 6 vergessen - hätte mir da sonst noch nen wolf gesucht, wo der fehler liegt.

werde mir vielleicht irgendwann mal ne PE oder so besorgen und schauen, ob es mit so ner version möglich ist die METHODINFO auszulesen ... mein entferntes ziel wäre es, solche published methoden aus einem interpreter heraus aufzurufen (ohne parameter ist es ja absolut keine schwierigkeit, aber mit parameter, und wenn man die parameter im vorfeld nicht kennt ... ?)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 13:50
Also ich will nicht sagen, dass es das in D6 nicht gibt. Hast du mal im Speicher direkt nachgeschaut?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#5

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 14:31
also, wenn ich im speicher nachschaue, dann sind dort der reihe nach die Namen der methoden aufgelsitet, dazwischen wenige daten (vermute mal adresse und size), und dann die nächste methodennamen

also parameter namen kann ich nicht entdecken (ausser die sind an einer ganz anderen stelle im speicher)?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 14:41
Die Parameternamen sind schon genau an der selbe Stelle (siehe Anhang).

Delphi-Quellcode:
{$METHODINFO ON}
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  published
    procedure AndereProzedur(Parameter1,parameter2:string);
  end;
Miniaturansicht angehängter Grafiken
parameter_182.jpg  
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#7

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 14:54
danke, dann braucht man auf jeden fall das {$METHODINFO ON} und das kann leider Delphi 6 nicht

ohne dem {$METHODINFO ON} sind dort keinerlei zusätzliche infos, nur die methodennamen, und sonst nix
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: RTTI von Methoden ab Delphi ??

  Alt 4. Aug 2007, 15:00
Naja, war mal interessant zu wissen.
(btw: die Button1click ist ja auch dabei)

Installier dir doch Turbo Delphi Explorer. Dann kannst du noch heute damit rumspielen! (Das ist ja fast eine Werbespruch )
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 08:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz