Eine Procedure durch eine Variable aufrufen

Für allgemeine Fragen zur Programmierung mit PureBasic.
dreamtec
Beiträge: 13
Registriert: 06.06.2008 14:34

Eine Procedure durch eine Variable aufrufen

Beitrag von dreamtec »

Hallo,

ich hab mal ne Frage bezüglich Prozeduren. Ist es irgendwie möglich eine Prozedure in einer Variablen zu speichern (oder besser gesagt den Pointer in einer Variablen speichern), und mit hilfe dieser Variablen die Prozedure aufrufen?

Also ich meine sowas in der Art:

Code: Alles auswählen

Procedure test()
  Debug "kleiner Test"
EndProcedure

a = @test()

a ;hier soll durch die Variable a die Procedure test() aufgerufen werden
Dies müsste doch irgendwie möglich sein, oder? Immerhin übergebe ich doch bei dem Befehl CreateThread auch nur einen Pointer, und die Prozedure wird ausgeführt.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Meinst du sowas?

Code: Alles auswählen

Prototype myProc()

Procedure test()
  Debug "kleiner Test"
EndProcedure

a.myProc = @test()

a() ;hier soll durch die Variable a die Procedure test() aufgerufen werden 
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7035
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ich glaube er meint es ehr so:

Code: Alles auswählen

Procedure test() 
  Debug "kleiner Test" 
EndProcedure 

a = @test() 

CallFunctionFast(a)
Wobei a besser zu *a gemacht werden sollte
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag von KatSeiko »

Kann man in der Variable eigentlich einen Aufruf mit Parametern speichern?
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Natürlich:

Code: Alles auswählen

Prototype myProc(dummy.s)

Procedure test(Text.s)
  Debug Text
EndProcedure

a.myProc = @test()

a("Test")
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
dreamtec
Beiträge: 13
Registriert: 06.06.2008 14:34

Beitrag von dreamtec »

@cxAlex und STARGÅTE

Vielen danke euch beiden. Beide ansätze bringen mich weiter.
Antworten