Home > cat > methoddecl 
 en fr de es it nl pl pt pt_BR mk sq ca hu tr ar fa id vi ko ja ru zh zh_TW eo
Previous  Next  Edit  Rename  Undo  Refresh  Search  Administration  
Documentation
History
 
Deklarace Metod

Procedures

[ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB }
  Identifier
  (
    [ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ]
    [ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ]
  )
  ...
END

This declares a procedure, i.e. a Metody that returns nothing.

The END keyword indicates the end of the procedure.

Functions

[ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
  Identifier
  (
    [ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ]
    [ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ]
  )
  AS Datatype
  ...
END

This declares a function, i.e. a Metody that returns a value.

The END keyword indicates the end of the function.

The datatype of the return value must be specified.

Of course, these declarations must be written on a unique line. They are separated there so that it is readable.

Use the RETURN keyword to terminate the function and pass the return value back to the caller.

Example

FUNCTION Calc(fX AS Float) AS Float
  RETURN Sin(fX) * Exp(- fX)
END

PUBLIC SUB Button1_Click()
  PRINT Calc(0);; Calc(0.5);; Calc(1)
END

0 0.290786288213 0.309559875653

Method Access

The Metody is accessible everywhere in the Třída it is declared.

Method Arguments

All Metody arguments are separated by commas.

Example

STATIC PUBLIC PROCEDURE Main()
...
PUBLIC FUNCTION Calc(fA AS Float, fB AS Float) AS Float
...
PRIVATE SUB DoIt(sCommand AS String, OPTIONAL bSaveIt AS Boolean = TRUE)
...
STATIC PRIVATE FUNCTION MyPrintf(sFormat AS String, ...) AS Integer

Arguments Passed By Reference

When the BYREF keyword is specified, the argument must be an assignment expression that will be modified by the called function.

Example

SUB ConvPixelToCentimeter(BYREF Value as Float, Dpi AS Integer)

  Value = Value / Dpi * 2.54

END

PUBLIC SUB Main()

  DIM Size AS Float

  Size = 256
  ConvPixelToCentimeter(BYREF Size, 96)
  PRINT Size

END

6.773333333333

If you do not specify BYREF at function call, then the argument is passed by value, even if BYREF was specified at function declaration.

In other words: the called function allows an argument to be passed by reference, whereas the caller decides it.

See also

Variable Declaration, Local Variable Declaration, Using reserved keywords as identifiers, Param, By Reference Argument Passing