Mattias Gaertner schrieb:

A simple example:

interface
function GetProp: byte;
var
   test: integer;
property
   prop1: byte read GetProp;
   prop2: byte read GetProp;
implementation
function GetProp: byte;
begin
  Result := 0; //whatever you like. check code completion for "Result"
end;

Local properties? I didn't know that this is allowed.

Above snippet should be in the *interface* part of a unit, see above.

Sorry for the confusion :-(

And my four
days old fpc 2.5.1 gives a strange error:

Error: Resourcestrings can be only static or global

That's definitely a bug. If one of the FPC developers lurks:

procedure psub.property_dec, line 673: parser_e_resourcstring_only_sg is wrong message. A new message parser_e_property_... is required.


The usage of an function name instead of the Result variable has been restricted. For some reason Lazarus now rejects "Result" in code completion, even if it is accepted by the compiler.
Can you give an example or better: the definition?
This happened to me in a property getter function, i.e. in the GetProp implementation in above example. So it may be related to the above property problem.

I don't know. The above does not compile.

Please try again.


It also seems that Lazarus has problems with $IF, even simple expressions are not evaluated properly, so that the wrong branch is handled as enabled/disabled.
Can you give an example?
Commandline option: -dMyConst:=1 (may work with local $DEFINE as well)

I implemented it.

Code: {$IF MyConst>1} ...

This works now.

Pretty fast, thanks :-)

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to