| Autor |
Beitrag |
Aurora1337
Hält's aus hier
Beiträge: 2
|
Verfasst: Fr 26.11.10 21:33
Hi,
Ich hab vor Kurzem rausgefunden dass man in Delphi auch Prozeduren als Variablen benutzen kann.
Ich hab schon n bisschen damit herumexperimentiert aber es gelingt mir nicht einen string in eine Prozedur umzuwandeln.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| function Calc(X,Y: Integer): Integer;
var F: function(X,Y: Integer): Integer; S: string;
begin readln(S); F := S; end. |
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 26.11.10 21:42
Hallo und  in der Entwickler-Ecke,
Dass du das nicht hinbekommst könnte daran liegen, dass das in Delphi überhaupt nicht geht. 
_________________ We are, we were and will not be.
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Fr 26.11.10 23:45
Wenn du einen String in eine Funktion "umwandeln" willst kannst du das mit if machen
Delphi-Quelltext 1: 2:
| if S='proc1' then proc1; |
Das ganze ist ja auch so gedacht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function Calc(X,Y: Integer): Integer; function NoCalc(X,Y: Integer): Integer;
var F: function(X,Y: Integer): Integer; S: string;
begin readln(S); if S='Calc' then F := Calc else F := NoCalc;
F(X,Y); end. |
Direktes umwandeln geht nicht. Das ganze geht dann sehr schnell in Richtung Parser.
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 27.11.10 03:30
Mit den Mapfile-Utilities von Omorphia kann man da ein wenig tricksen und für nahezu alle Prozeduren die nötigen Adressen auslesen, aber direktes Umwandeln geht nicht. Ansonsten siehe die Antworten der Vorposter. Und für die ODbgMapfile-Funktionen sollte man schon recht gut programmieren können, damit die sauber funzen.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Sa 27.11.10 10:16
ansonsten könnte man sich die TParser - Komponente anschauen, hiermit geht auch einiges.
EDIT:
ist wohl inzwischen aufgegangen in
TExpressionParser
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Aurora1337 
Hält's aus hier
Beiträge: 2
|
Verfasst: Sa 27.11.10 21:28
danke für die schnelle hilfe.
Ich glaube ich werde mich mal ein bisschen mit parsern beschäftigen, dann klappt das auch 
|
|
|