[fpc-devel] Array assignment operator

Sven Barth pascaldragon at googlemail.com
Mon Nov 5 11:06:38 CET 2018


Am Mo., 5. Nov. 2018, 01:00 hat Gennady Agranov <gennadyagranov at gmail.com>
geschrieben:

> On 11/4/2018 5:24 PM, Sven Barth via fpc-devel wrote:
>
> Am So., 4. Nov. 2018, 20:36 hat Gennady Agranov <gennadyagranov at gmail.com>
> geschrieben:
>
>> On 11/4/2018 11:24 AM, Sven Barth via fpc-devel wrote:
>>
>> Am So., 4. Nov. 2018, 12:23 hat Schindler Karl-Michael <
>> karl-michael.schindler at web.de> geschrieben:
>>
>>>
>>>
>>> > Am 04.11.2018 um 12:00 schrieb Ben Grasset <operator97 at gmail.com>:
>>> >
>>> > From: Ben Grasset <operator97 at gmail.com>
>>> > To: FPC-Devel users discussions <fpc-devel at lists.freepascal.org>
>>> > Subject: Re: Array assignment operator
>>> > Message-ID: <
>>> CAL4d7FjPfX-ysT6Z3--fhPR9Pts-N47ksFN6m2pHD7SunzwpJg at mail.gmail.com>
>>> > Content-Type: text/plain; charset="utf-8"
>>> >
>>> > On Sat, Nov 3, 2018 at 4:44 PM Gennady Agranov <
>>> gennadyagranov at gmail.com>
>>> > wrote:
>>> >
>>> >> Hi,
>>> >>
>>> >> Leaving aside the reason why the MiSchi's solution doesn't work the
>>> main
>>> >> question is still not answered :)
>>> >>
>>> >> If you have integer dynamic array "MyArray" is there a way for the
>>> >> following statement to compile and work correctly:
>>> >>
>>> >> MyArray := 5;
>>> >>
>>> >
>>> > Uh, yes? That's what my example showed.
>>>
>>> In your example the length of the array was set to the number and the
>>> elements of the array assigned to their index, whereas my intention is to
>>> keep the length of the array and fill all elements to the same number.
>>>
>>
>> The operator always creates a new array and does not modify the existing
>> one.
>> You'd need to abuse a binary operator (e.g. >< or even <=) for this.
>>
>> Regards,
>> Sven
>>
>>>
>>
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.orghttp://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>
>> I was thinking that type helper might work - e.g. MyArray.SetValue(5) and
>> with using properties MyArray.Value := 5
>>
>> But seems that even simple type helper is not working anymore?
>>
>> E.g. I was not able to compile example from
>> http://wiki.freepascal.org/Helper_types :(
>>
>> TTypeHelper = type helper for Integer
>>   procedure SetZero;end;
>>
>> Did you add {$modeswitch typehelpers}?
>
> If so, what is the error you get?
>
> Regards,
> Sven
>
>>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.orghttp://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
> My error was caused by the fact that I was using delphi mode - when I used
> the mode switch it worked perfectly :)
>
In mode Delphi you need to use "record helper" for primitive types as
Delphi does not use "type helper" for that.

Regards,
Sven

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20181105/4db0ad5a/attachment.html>


More information about the fpc-devel mailing list