Es gibt in PB ja eine menge Libs, die ein "Init" benötigen, z.B. InitNetWork().
Bei doppeltem Aufruf meckert der Compiler

, deshalb werden diese
Funktionen bei Templates (Bausteinen) meist weggelassen. Hier ein kleines
WorkAround, um diese Problem zu umgehen.
Das Beispiel ist jetzt für InitNetwork(), funktioniert nach entsprechender Anpassung
natürlich auch für die anderen Initfunktionen.
Code:
CompilerIf Defined(InitNetworkEx, #PB_Procedure) = #False
Procedure InitNetworkEx()
Static IsInit = #False
If Not IsInit
IsInit = InitNetwork()
EndIf
ProcedureReturn IsInit
EndProcedure
Macro InitNetwork()
InitNetworkEx()
EndMacro
CompilerEndIf
; Beispiel, erzeugt normallerweise einen Fehler
InitNetwork()
InitNetwork()
Das ist jetzt nichts weltbewegendes, aber manchmal kommt man einfach nicht drauf

Der Code muss aber vor dem ersten InitNetwork() eingefügt werden!