Co do PHP i co do tego, że to język skryptowy to masz rację, ale skrypty mogą być tylko
wykonywane wewnątrz pewnej aplikacji, w odróżnieniu od programów
nie skryptowych, które wykonują się niezależnie od innych aplikacji. Do przetwarzania skryptów niezbędne są
interpretatory, które interpretują kod źródłowy programu skryptowego
(skryptu) i wykonują przeanalizowane fragmenty. Interpreter musi analizować każde wyrażenie i dopiero po przeanalizowaniu skryptu może wykonać akcję. Interpretacja kodu wymaga jego parsowania, wiec
polymorphism ma rację co do tego, że potrzebujesz parsera.
Nie wiem skąd to się bierze, ale osoby, które przed nauką programowania posługiwały się językami skryptowymi mają tendencję do porównywania tych języków, a często nawet próbują przenosić funkcje z języka skryptowego do języka programowania.
Co do Twojego problemu, to ja również sądzę, że źle się do tego zabierasz. Zakładając, że będziesz w zmiennych typu String przechowywał nazwy obiektów (klas) i funkcji, to przecież i tak musisz w programie stworzyć te funkcje i obiekty, a potem w zależności od zawartości zmiennej String będziesz odwoływał się do konkretnego obiektu i funkcji., Rozwiązanie nasuwa się samo, rób to poprzez identyfikatory i funkcję, sugerowałbym jednak zamiast zmienną typu String posłużyć się raczej typem
int np:
- Kod: Zaznacz cały
void Funckja1(void)
{
// coś tam 1
}
//----------------------------------------------------------------
void Funckja2(void)
{
// coś tam 2
}
//----------------------------------------------------------------
void Funckja3(void)
{
// coś tam 3
}
//----------------------------------------------------------------
void Funckja4(void)
{
// coś tam 4
}
//----------------------------------------------------------------
void __fastcall WykonajDzialanie(int ID)
{
switch(ID)
{
case 1: Funkcja1(); return;
case 2: Funkcja1(); return;
case 3: Funkcja1(); return;
case 4: Funkcja1(); return;
}
}
//+++++++++++++++++++++++++++++++++++++++++++++
void __fastcall TForm1::Button1(TObject *Sender)
{
int ID = 3;
WykonajDzialanie(3);
}
Ten pomysł ze String się nie sprawdzi. Zadziała w odniesieniu do obiektów, gdyż można posłużyć się funkcją FindComponent, ale nie w odniesieniu do klas nie będących obiektami i nie w odniesieniu do funkcji. Być może istnieje jakiś sposób do tego co wymyśliłeś, ale ja o czymś podobnym nigdy nie słyszałem.
Nie sugeruj się skryptami PHP, bo sprowadzi to Ciebie na manowce...