Seite 2 von 2

Re: macro problem

Verfasst: 11.06.2011 14:21
von STARGÅTE
Bei einer Userlib lädtst du ja nichts mehr ein, weil es ja zu kompilerzeiten eingebunden wird.

Du kannst dann Beispiel(@Test, 123) sofort nutzen.

Re: macro problem

Verfasst: 11.06.2011 14:56
von ts-soft
Bisonte hat geschrieben:Braucht man das mit dem Import auch wenn es sich nur um eine Userlib handelt ?
Eine UserLib wird durch verwendung der enthaltenen Funktionen Importiert, ein explicieter Import ist nicht nötig / möglich!
Bisonte hat geschrieben: (Ich hatte DLL gesagt, weil es sich ja laut PBHilfe programmiertechnisch um das gleiche handelt)
Ich glaube nicht, das so etwas in der Hilfe steht :wink:
Es gibt sehr viele Unterschiede zwischen einer UserLib und einer DLL. Sind zwar alles Feinheiten,
aber darüber sollte man sich im klarem sein.

Gruß
Thomas

PS: passt hier im alten Thread doch etwas besser

Re: macro problem

Verfasst: 11.06.2011 15:10
von Bisonte
ts-soft hat geschrieben:Es gibt sehr viele Unterschiede zwischen einer UserLib und einer DLL.
Naja es wird immer im gleichen Atemzug genannt, daher meine Aussage.

Ok wenn es denn so ist, dann hab ich es wohl geschnallt...

Danke für die Mühen die ich gemacht hab... und sorry für das shanghaien des Threads ;)

Re: macro problem

Verfasst: 23.06.2011 19:25
von kevv

Code: Alles auswählen

Procedure A1(C)
  ;c=10
  
  Debug C
  ProcedureReturn Wert*100
EndProcedure

Procedure A2()
   Debug "A200"
EndProcedure

Prototype Beispiel()

Structure ProzedurListe
   Beispiel.Beispiel[10]
EndStructure

Define ProzedurListe.ProzedurListe
ProzedurListe\Beispiel[1] = @A1()
ProzedurListe\Beispiel[2] = @A2()

; Nun kannst du sowas machen:

A$ = "2"


Debug ProzedurListe\Beispiel[Val(A$)]()

;ProzedurListe\Beispiel[2-1]()
Und wie kann man hier parameter an die structure übergeben
Und return auslesen?

Re: macro problem

Verfasst: 23.06.2011 19:37
von STARGÅTE
"ganz normal" wie du es auch bei einer Prozedur machen würdest.

Zu beachten ist nur, dass die Definition bei Prototype exakt mit der Prozedur-Definition übereinstimmen muss.

Code: Alles auswählen

Procedure.s A1(A.i, B.s)
  ProcedureReturn B+" "+Str(A)
EndProcedure

Procedure.s A2(A.i, B.s)
  ProcedureReturn Str(A)+". "+B
EndProcedure

Prototype.s Beispiel(A.i, B.s)

Structure ProzedurListe
   Beispiel.Beispiel[10]
EndStructure

Define ProzedurListe.ProzedurListe
ProzedurListe\Beispiel[1] = @A1()
ProzedurListe\Beispiel[2] = @A2()



Debug ProzedurListe\Beispiel[Val("2")](12, "Platz")
Debug ProzedurListe\Beispiel[1](12, "Platz")

Re: macro problem

Verfasst: 23.06.2011 20:56
von kevv
ahhh ok
hatte einen Fehler drin, aber so gehst
Danke!