Pointer auf Procedure
Pointer auf Procedure
Hallo,
ich möchte einen Pointer auf eine Procedure A einer Procedure B übergeben.
Wie muss die Signatur der Procedure B aussehen, damit ich einen Pointer auf A übergeben kann?
Wie übergebe ich die Procedure A an B?
Wie rufe ich die als Procedure A an B übergebene Procedure im Rumpf von B auf?
Wäre für ein kleines Beispiel dankbar.
Gruesse,
Animal
ich möchte einen Pointer auf eine Procedure A einer Procedure B übergeben.
Wie muss die Signatur der Procedure B aussehen, damit ich einen Pointer auf A übergeben kann?
Wie übergebe ich die Procedure A an B?
Wie rufe ich die als Procedure A an B übergebene Procedure im Rumpf von B auf?
Wäre für ein kleines Beispiel dankbar.
Gruesse,
Animal
PureBasic 4.50 beta2 (Mac OS X - Intel)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Re: Pointer auf Procedure
Das Beispiel sollte alles zeigen:
Wichtiges Element ist hier: CallFunctionFast()
Informationen dazu findest du in der Hilfe
Code: Alles auswählen
Procedure Test1(Value.i)
Debug "Test 1"
Debug Value
EndProcedure
Procedure Test2(Value.i)
Debug "Test 2"
Debug Value
EndProcedure
Procedure Beispiel(*ProcedurePointer, Value)
CallFunctionFast(*ProcedurePointer, Value)
EndProcedure
*Proc1 = @Test1()
Beispiel(*Proc1, 10)
Beispiel(@Test2(), 20)Informationen dazu findest du in der Hilfe
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Pointer auf Procedure
Zunächst einmal, ohne etwas zur Sache zu sagen: Willkommen!Animal hat geschrieben:Gruesse
Stargate hat bereits etwas geschrieben.
Bitte in der Signatur Rechnerausstattung, Betriebssystem und PB-Version angeben.
Auch Deine Tastatur hat Umlaute!
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Re: Pointer auf Procedure
Prima. Das ging ja fix.
Lieben Dank,
Animal
Lieben Dank,
Animal
STARGÅTE hat geschrieben:Das Beispiel sollte alles zeigen:
...
PureBasic 4.50 beta2 (Mac OS X - Intel)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Re: Pointer auf Procedure
Danke.
Ist's so besser? Das mit der Tastatur verstehe ich nicht.
Gruesse,
Animal
Ist's so besser? Das mit der Tastatur verstehe ich nicht.
Gruesse,
Animal
WPö hat geschrieben:Zunächst einmal, ohne etwas zur Sache zu sagen: Willkommen!Animal hat geschrieben:Gruesse
Stargate hat bereits etwas geschrieben.
Bitte in der Signatur Rechnerausstattung, Betriebssystem und PB-Version angeben.
Auch Deine Tastatur hat Umlaute!
Gruß - WPö
PureBasic 4.50 beta2 (Mac OS X - Intel)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Rechner: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pointer auf Procedure
Das muss man auch nicht verstehen, ist so eine komische Macke von Ihm.Animal hat geschrieben:Das mit der Tastatur verstehe ich nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Re: Pointer auf Procedure
ein Beispiel mit Prototype. siehe auch PB-Hilfe
Code: Alles auswählen
;dieser Teil befindet sich in einer DLL oder Include
; und soll nicht verändert werden.
; und das zuweisen der Daten soll extern erfolgen
Prototype pHoleDaten(Array c(1)) ;kann auch mehr Parameter haben
Procedure Diagramm(adresse, flag)
HoleDaten.pHoleDaten = adresse ;Prototype Zeiger zuweisen
Dim dtn(0) ; sehr wichtig muß hier definiert werden
HoleDaten(dtn()) ; Anzahl Parameter muß gleich Prototype Definition sein
;Daten auswerten
;z.B. erstelle Diagramm
farbe = #Blue
If flag: farbe = #Red: EndIf ;tue irgendwas
For j = 0 To ArraySize(dtn())
Debug dtn(j)
Next
EndProcedure
;das Hauptprogramm
Procedure xyz(Array dtn(1))
; füllt Array
max = 21
Dim dtn(max) ;Datenfeld dimensionieren
;Feld mit Daten von irgendwoher füllen
dtn(1) = 11
dtn(11) = 22
dtn(21) = 33
EndProcedure
Diagramm(@xyz(),1)
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Re: Pointer auf Procedure
Thx hjbremer, das hat auch mir sehr geholfen ...
Hatte vorher nicht so den Durchblick bei Prototype
Obwohl die ersten Zeilen aus Diagramm zimlich ungewohnt sind.
Hatte vorher nicht so den Durchblick bei Prototype
Obwohl die ersten Zeilen aus Diagramm zimlich ungewohnt sind.
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pointer auf Procedure
Für ein Beispiel wohl etwas zu kompliziert. Hier nochmal das Beispiel von STARGÅTE
mit Prototypes, damit man sieht das Prototypes keineswegs komplizierter als
CallFunction... sind.
PS: Die neue IDE ermöglicht das automatische oder nachträgliche Einrücken,
was die Lesbarkeit erheblich erhöht.
Gruß
Thomas
mit Prototypes, damit man sieht das Prototypes keineswegs komplizierter als
CallFunction... sind.
Code: Alles auswählen
Prototype Test(value.i)
Procedure Test1(Value.i)
Debug "Test 1"
Debug Value
EndProcedure
Procedure Test2(Value.i)
Debug "Test 2"
Debug Value
EndProcedure
MyTest1.Test = @Test1()
MyTest2.Test = @Test2()
MyTest1(10)
MyTest2(20)
was die Lesbarkeit erheblich erhöht.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Pointer auf Procedure
kompliziert sind prototypen ja eigentlich nicht. aber das ist auch so ein punkt, wo sich mein hirn ein bischen quer legt. keine ahnung warum. aber trotzen eine frage dazu, wenns auch nicht unbedingt ganz hier her passt.
kann man interfaces eigentlich als eine sammlung von prototypen sehen?
kann man interfaces eigentlich als eine sammlung von prototypen sehen?