AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Funktionsnamen aus Variablen?

Ein Thema von new32 · begonnen am 7. Aug 2005 · letzter Beitrag vom 11. Dez 2006
Antwort Antwort
Seite 1 von 3  1 23   
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#1

Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 13:52
Gibt es eine möglichkeit eine Funktion auszuführen, deren Name in einer Variable steht?

z.B.:

Delphi-Quellcode:
var s:string;

procedure h;
begin
 //???
end;

s:=h;
so und nu möchte ich dieses hier anders machen:

if s=h then h;
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 13:55
Ja, die Möglichkeit gibt es. Aber sie wird von Delphi nicht angeboten. Das ganze Ding, das du brauchst, nennt sich Parser, damit könnte es gehen

Falls du das wirklich über Strings machen willst, schlage ich vor, deine Prozeduren als class procedures in eine Klasse zu legen (unter published) und per RTTI anzusprechen.
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#3

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:00
Nein, es gibt keine triviale Möglichkeit, das zu tun was du erreichen willst. Ich weiß allerdings nicht, was an einer if-Abfrage schlecht sein soll.
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:22
Zitat von Oxmyx:
Ich weiß allerdings nicht, was an einer if-Abfrage schlecht sein soll.
Ich baue nen Interpreter; wenn ich nu für jeden Befehl ne if-Abfrage(oder case...) mache, bin ich 1. ewig damit bescheftigt und 2. wird das ding immer langsamer!


verstehst du mein Problen?

MfG NEW32!
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:32
Stichwort: Funktions und Methodenzeiger!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:46
Und wie sollen ihm Methodenzeiger dort helfen? Per string kann er sie damit trotzdem nicht ansprechen bzw aufrufen.
Mario
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:50
versteh ich auch nich.

ich stell mir das so vor(vereinfacht):

runProc('h');
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 14:56
Die procedure-Namen die du in Delphi gibst, gibt es aber später im programm nicht mehr, sie dienen lediglich zum programmieren, folglich wirst du um if / case nicht drumrum kommen.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 15:13
Es gibt tatsächlich zwei Möglichkeiten die in Delphi integriert sind um das zu erreichen:

1.) über Klassen deren Methoden published wurden. Über Class.FindMethod() kann man solche published Methoden finden und aufrufen. Deren Parameter müssen aber denoch zur Compilertime bekannt und fixiert sein.

2.) über Interfaces, genauer gesagt über IDispatch. Benutzt man solche Interfaces dann gibt es bekanntlich zwei Arten der Bindung solcher Interfaces -> die frühe Bindung ist hardcoded durch den Compiler aber die späte Bindung basiert auf Namen. Vorteil dieser Variante ist es das die Parameter selber ebenfalls dynamisch zu Laufzeit übergeben werden können und denoch Typsicher sind.

In jedem Falle müssten deine Proceduren/Funktionen in Klassen oder Interfaces gekapselt werden, was ich sogar als Vorteil empfinde. Die letztere Art kann zb. auch mit dem MS-Scripting benutzt werden. D.h. man kann zb. in VBA Basci seine Scripte schreiben, in Delphi seine eigenen IDispatch Schnittstellen implementieren und diese dann innerhalb der Scripting Engine aufrufen.

Gruß Hagen
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Funktionsnamen aus Variablen?

  Alt 7. Aug 2005, 15:16
Zitat von MrKnogge:
Die procedure-Namen die du in Delphi gibst, gibt es aber später im programm nicht mehr, sie dienen lediglich zum programmieren, folglich wirst du um if / case nicht drumrum kommen.
Da is was dran... hätt ich eigentlich selbst drauf kommen können.

@all: TNX!
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:30 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