Autor Beitrag
*Knust*
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 95



BeitragVerfasst: So 09.12.07 23:10 
Hi!

Ich würde gerne ein Programm bauen, dass aus einer stringliste (array oder stringlist) einen string raussucht und eine prozedur mit dem namen des inhaltes des strings ausführt...
normalerweise kann man prozeduren ja einfach durch "myprocedure;" aufrufen...wenn der name der procedure allerdings ein string ist, kann er damit nix anfangen

gibt es sowas wie "startprocedure(stringvariable)" ???

mfg

Knust


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am So 09.12.2007 um 23:12
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Mo 10.12.07 00:03 
user profile icon*Knust* hat folgendes geschrieben:

gibt es sowas wie "startprocedure(stringvariable)" ???

einen direkten functionsaufruf gibts nicht.
Sollte sowas doch irgendwo rummgeiern, lass ich mich gern eines besseren belehren.

du kanst es aber über einen umweg hinbekommen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure MachDas;
procedure MachWasAnderes;
...
...
...

str := Edit1.Text;
if str = 'MachDas' then MachDas;
if str = 'MachWasAnderes' then MachWasAnderes;
...
...
...

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mo 10.12.07 01:39 
Warum sollte es denn nicht gehen? Ist schon schade genug das man nicht so ohne weiteres zur Laufzeit so ohne weiteres die Funktionalität einer Prozedur austauschen kann.
Aber eine Prozedur über ihren Namen aussuchen und ausführen geht schon. Ist aber wirklich mit Vorsicht zu genießen.
Dazu die folgende Lektüre : www.delphi-forum.de/viewtopic.php?t=72722
(Die Beiträge von Lossy eX und mir (Sinspin) sind dabei die interessanten und führen zum gewünschten (gleichen) Ziel.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
hazard999
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 162

Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
BeitragVerfasst: Mo 10.12.07 08:08 
Hallo,

das ist zwar net, allerdings mit den ganzen entsprechenden möglichen Sicherheitsrisiken.

Google mal nach "Factory-Pattern", das betrifft zwar jetzt nicht unbedingt procedures/functions sondern
Klassen, läuft aber im Endeffekt aufs gleiche raus.

r u

René

_________________
MOV EAX, Result;MOV BYTE PTR [EAX], $B9;MOV ECX, M.Data;MOV DWORD PTR [EAX+$1], ECX;MOV BYTE PTR [EAX+$5], $5A;MOV BYTE PTR [EAX+$6], $51;MOV BYTE PTR [EAX+$7], $52;MOV BYTE PTR [EAX+$8], $B9;MOV ECX, M.Code;MOV DWORD PTR [EAX+$9], ECX