On Sun, 9 Nov 2014, Bart wrote:
On 11/9/14, Stefanos Beligiannis <[email protected]> wrote:
If somebody has met this problem please advise.
----------------code var f : text;
fn,nam : string;
begin
fn:=Edit2.Caption;
{$I-}
assign(f,fn);
if (not FileExists(fn)) then Rewrite(f) else Append(f);
{$I+}----------------- end codecompiler error
report----------------- startk2u.pas(92,18) Error: Wrong number of
parameters specified for call to "Assign"k2u.pas(93,44) Hint: Local variable
"f" does not seem to be initialized----------------- end
use Lazarus # 1.2.6
Use TextFile instead of Text, use AssignFile instead of Assign.
Alternatively prepend both Text and Assign with system. (note the dot!).
Explanation:
The code most likely is inside a TForm. TForm descends from TPersistent.
TPersistent has a .Assign() method, which is totally unrelated to the Assign()
of the system unit.
When compiling your code, the compiler needs to know which Assign() to use.
It finds first the TPersistent.Assign, stops searching and gives an error
because it has different arguments from the system version.
By prepending your "text" and "assign" with system: system.text, system.assign,
the compiler does not search in TPersistent and finds the correct routines.
Michael.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus