Seite 1 von 2
Pointer auf Procedure
Verfasst: 10.04.2010 19:45
von Animal
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
Re: Pointer auf Procedure
Verfasst: 10.04.2010 19:53
von STARGÅTE
Das Beispiel sollte alles zeigen:
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)
Wichtiges Element ist hier: CallFunctionFast()
Informationen dazu findest du in der Hilfe
Re: Pointer auf Procedure
Verfasst: 10.04.2010 19:54
von WPö
Animal hat geschrieben:Gruesse
Zunächst einmal, ohne etwas zur Sache zu sagen: Willkommen!
Stargate hat bereits etwas geschrieben.
Bitte in der Signatur Rechnerausstattung, Betriebssystem und PB-Version angeben.
Auch Deine Tastatur hat Umlaute!
Gruß - WPö
Re: Pointer auf Procedure
Verfasst: 10.04.2010 20:04
von Animal
Prima. Das ging ja fix.
Lieben Dank,
Animal
STARGÅTE hat geschrieben:Das Beispiel sollte alles zeigen:
...
Re: Pointer auf Procedure
Verfasst: 10.04.2010 20:06
von Animal
Danke.
Ist's so besser? Das mit der Tastatur verstehe ich nicht.
Gruesse,
Animal
WPö hat geschrieben:Animal hat geschrieben:Gruesse
Zunächst einmal, ohne etwas zur Sache zu sagen: Willkommen!
Stargate hat bereits etwas geschrieben.
Bitte in der Signatur Rechnerausstattung, Betriebssystem und PB-Version angeben.
Auch Deine Tastatur hat Umlaute!
Gruß - WPö
Re: Pointer auf Procedure
Verfasst: 10.04.2010 20:12
von ts-soft
Animal hat geschrieben:Das mit der Tastatur verstehe ich nicht.
Das muss man auch nicht verstehen, ist so eine komische Macke von Ihm.
Re: Pointer auf Procedure
Verfasst: 10.04.2010 21:12
von hjbremer
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)
Re: Pointer auf Procedure
Verfasst: 10.04.2010 21:23
von STARGÅTE
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.
Re: Pointer auf Procedure
Verfasst: 10.04.2010 21:36
von ts-soft
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.
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)
PS: Die neue IDE ermöglicht das automatische oder nachträgliche Einrücken,
was die Lesbarkeit erheblich erhöht.
Gruß
Thomas
Re: Pointer auf Procedure
Verfasst: 10.04.2010 22:09
von Josh
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?