Difference between revisions of "FPC message: Wrong number of parameters specified"

From Lazarus wiki
m
Line 10: Line 10:
 
<syntaxhighlight>Button1.Click := Button1Click;</syntaxhighlight>
 
<syntaxhighlight>Button1.Click := Button1Click;</syntaxhighlight>
 
    
 
    
In mode [[ObjFPC]] you must add the @ to tell the compiler, that you want the pointer to the function, not the result of the function:
+
In [[Mode ObjFPC]] you must add the @ to tell the compiler, that you want the pointer to the function, not the result of the function:
 
<syntaxhighlight>Button1.Click := @Button1Click;</syntaxhighlight>
 
<syntaxhighlight>Button1.Click := @Button1Click;</syntaxhighlight>
  

Revision as of 17:31, 11 October 2015

Deutsch (de) English (en)

Missing parameter or too many parameters

You confused the function and forgot a parameter or added a parameter too much.

Missing @

For example:

Button1.Click := Button1Click;

In Mode ObjFPC you must add the @ to tell the compiler, that you want the pointer to the function, not the result of the function:

Button1.Click := @Button1Click;

Delphi users often confuse this, because Delphi allows it and adds the @ internally. If you prefer the Delphi syntax you can use {$mode Delphi} instead of {$mode ObjFPC}.