19. april 2000 - 08:48Der er
4 kommentarer og 2 løsninger
Kald af funktion når man har navnet som streng værdi.
Jeg er ved at lave et program som skal modtage en fil, med en masse text og nogle få kommandoer. Kommandoerne er indesluttet af tags <%%> lidt ligesom asp. () Mellem de tags skriver jeg navnet på den funktion der skal kaldes for at generere den rigtige text. Som det er nu, er jeg nødt til at bruge en if sætning i stil med: "If InStr(command, "prop_ID_def") Then callcommand = callcommand & prop_ID_def" hvor callcommand er navnet på funktionen der styrer hvilke andre funktioner der skal kaldes, command er strengen der indeholder funktionsnavnet (" prop_ID_def ") og prop_ID_def er funktionen jeg ønsker at kalde.
Det, jeg gerne vil, er at bruge strengen til at kalde funktionen direkte. Lidt i stil med:
callcommand = CallByName(command)
Jeg har fundet CallByName functionen i VB dokumnentationen, men det ser ud som om man skal angive et object som den ønskede funktion skal afvikles på. Det har jeg ikke. Kun en samling funktioner der opererer på strenge. Skal jeg lave et nyt object der indeholder disse funktioner (og i så fald hvordan?) eller er der en anden måde.
Når jeg kun giver 15 point, er det fordi jeg har på fornemmeren at det her er herrenemt, når man ved hvordan. Det går jeg desværre bare ikke!!!
Ups... mig igen. En anden af de ting jeg godt vil kunne gøre er at angive en streng der både indeholder et funktionsnavn, og nogle parametre som skal passes til den funktion.
Nu sidder jeg og udvikler det her i Visual Basic for app. under Access 97. Jeg får fejlen Compile error: sub or function not defined, når jeg bruger CallByName(Me, command, 1)
Da det er en compiler error, kan det vel ikke skyldes at command indeholder et ugyldigt navn?
Kan det passe at man kun kan kalde subs, og ikke funktioner på denne måde?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.