Push

( Par1 : ....;
  Par2 : ....;
  ....
  ParX : ....)

Ukládá parametry Par1 až ParX do paměti. Parametry mohou být pouze interní proměnné makrojazyka:

  dim A : Byte;           dim E : String;
  dim B : Word;           dim F : Char;
  dim C : Integer;        dim G : Date;
  dim D : Real;
  dim X (100)   : Word;
  dim Y (30,10) : Byte;

Nelze tedy používat konstant (Push(100)), výrazů (Push(A+9)) ani položek databází (Push(Str[dbIdent])). K vyzvednutí takto uložených parametrů slouží procedura Pop . Četnost použití procedury Push je omezená pouze dostupnou pamětí. Je potřeba dbát na správné párování procedur Push a Pop a na to, aby procedura Pop četla stejné typy proměnných, jaké se procedurou Push uložily! Procedura se používá především při tvorbě reentrantních procedur.

Podívejte se na:Ostatní procedury a funkce


		

Příklad:

dim A : Real;
call AProc(A, 10);
...
procedure AProc (dim A : Real; B : Byte);
  dim S : String[100];
  dim W : Word;
  Push(S, W);
  ...
  ...
  call AProc(A, B);
  ...
  Pop(S, W);
endproc


		

Pozor ! Je zřejmé, že v případě nutnosti uchovávání vstupujících parametrů procedury je potřeba postupovat jinak, protože ve chvíli ukládání např parametru 'B' procedurou Push na začátku naší procedury 'AProc' je již hodnota 'B' změněna. V tomto případě je tedy nutné postupovat takto:

           
                  
                   
                    
                
              procedure AProc (dim A : Real;
                                   B : Byte);
                dim S  : String[100];
                dim W  : Word;
                dim SB : Byte;
                Push(S, W, SB);
                SB := B;
                ...
                ...
                call AProc(A, SB);
                ...
                Pop(S, W, SB);
              endproc