Difference between revisions of "FPC message: Wrong number of parameters specified"
From Lazarus wiki
Jump to navigationJump to searchm |
(syntaxhighlight) |
||
Line 8: | Line 8: | ||
For example: | For example: | ||
− | + | <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> | |
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}. | 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 06:52, 7 May 2012
│
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}.