Difference between revisions of "FPC message: Wrong number of parameters specified"
From Lazarus wiki
Jump to navigationJump to searchLine 10: | Line 10: | ||
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: | ||
Button1.Click := @Button1Click; | 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}. |
Revision as of 01:38, 2 May 2006
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}.