Zitat von
MaBuSE:
Das müsste doch funktionieren, oder?
Ich habe es mal getestet, es funktioniert
Jetzt nur noch die Frage ist es schnell?
Ich glaube schneller als ein Case schon (ohne Init)
Delphi-Quellcode:
var
i: Integer;
machWas: array of procedure;
...
procedure rohr;
...
procedure schraube;
...
procedure schraubendreher;
...
begin
// ein mal init
SetLength(machWas, 3)
machwas[0] := rohr;
machwas[1] := schraube;
machwas[2] := schraubendreher;
...
while (...) do
begin
...
// vielfacher Aufruf (z.B. in Schleife)
i := IndexOf(s, ['rohr', 'schraube', 'schraubendreher']);
if i>-1 then machWas[i]
else machNix;
...
(Mit procedure of object könnte man natürlich auch Methoden in das Array legen
)