Seite 1 von 1

simple Demo von Prototype angewendet auf eigene Prozeduren

Verfasst: 13.08.2009 22:12
von hjbremer
Das Echo auf Beiträge zu Interfaces ist hier im Board recht mager.
Aber vielleicht interressieren sich ja einige für die Möglichkeiten von Prototypes.

In der Hilfe steht, Prototype ist besser als CallFunctionFast und wird verwendet um auf Funktionen fremder DLLs zugreifen zu können.
Wohl war, aber man kann nochmehr damit machen.

z.B. auf eigene Funktionen zuzugreifen

hier mal ein einfaches Beispiel.

Code: Alles auswählen

Structure Protofeld
 a.i
 b.s
 c.s
EndStructure 

Prototype HoleDaten(Array a.Protofeld(1))
   Global HoleDaten.HoleDaten

Procedure Anzeigen(Array b.Protofeld(1))
 
 size = ArraySize(b())
 
 For j = 0 To size
  Debug Str(b(j)\a) + " " + b(j)\b + " " + b(j)\c
 Next

EndProcedure

Procedure Aufrufen(funktionszeiger)

 HoleDaten = funktionszeiger 
 
 Dim b.Protofeld(0)  ;Feld muß existieren
 HoleDaten(b()) 
  Anzeigen(b())

EndProcedure

;bis hier könnte der obige Code in einer Include oder einer DLL stecken

;ab hier könnte das Programm beginnen

Structure blabla  ;muß der gleiche Aufbau sein wie Structur für Prototype
 a.i
 b.s
 c.s
EndStructure 

Procedure Daten1(Array d.blabla(1))
 
  max = 6
  Dim d.blabla(max)
  
  For j = 0 To max
    d(j)\a = Random(max)
    d(j)\b = Str(j)
    d(j)\c = Chr(j+64)
  Next  

EndProcedure

Procedure Daten2(Array d.blabla(1))
 
  max = 9
  Dim d.blabla(max)
  
  For j = 0 To max
    d(j)\a = Random(max)
    d(j)\b = Str(j)
    d(j)\c = Chr(j+64)
  Next  

EndProcedure

Aufrufen(@Daten1())
Debug "-----------"
Aufrufen(@Daten2())
Sollte Interresse bestehen, kann ich auch einen komplexen Code posten.

__________________________________________________
Thread wurde verschoben
Allgemein>Code, Tipps und Tricks
13.08.2009
RSBasic