[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {
    > Ok I am playing and trying to get a unit to do this stuff
    > AddFunction( fn : string);  (* add a function name to the loop *)
    > RemoveFuction( fn : string); ReadyLoop; StartLoop; EndLoop; ClearLoop;
    > basicly the statloop will run ALL the AddFunction'ed functoins til the
    > code hits a EndLoop;

    You could have an array of procedures/functions... thus:
    }

    Type
     MyFunction:Function (X,Y,Z:Byte; R:Real; S:String; Var W:Word):String;
     {Create exactly what you need. You probibly only want function:Boolean or
      something}

    Var
     Funcs:Array[1..20] Of MyFunction;
     FuncsCount:Byte;

    {$F+}
    Function Example_My_Func(X,Y,Z:Byte; R:Real; S:String; Var W:Word):String;
    Begin
     {Any code here!}
     Example_My_Func:=S+'!';
    End;
    {$F-}

    Procedure Add_Function(Func:MyFunction);
    Begin
     Inc(FuncsCount);
     Funcs[FuncsCount]:=Func;
    End;

    Procedure Call_All_Funcs;
    Var
     L:Byte;
     A_Word:Word;
    Begin
     For L:=1 To FuncsCount Do
      Writeln(Funcs[FuncsCount](1,2,3,1.55,'Yay',A_Word));
    End;

    Begin
     FuncsCount:=0; {Initialisation}
     Add_Function(@Example_My_Func);   {<= Not sure if the '@' symbol is needed}
     Call_All_Funcs;
      {Dont need to remove them or anything.}
    End.

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]