On Fri, 23 Dec 2022, Sven Barth wrote:

Michael Van Canneyt via fpc-pascal <fpc-pascal@lists.freepascal.org>
schrieb am Fr., 23. Dez. 2022, 10:48:



On Fri, 23 Dec 2022, Sven Barth via fpc-pascal wrote:

Michael Van Canneyt via fpc-pascal <fpc-pascal@lists.freepascal.org>
schrieb am Fr., 23. Dez. 2022, 08:18:



On Thu, 22 Dec 2022, Andrew Haines via fpc-pascal wrote:

Hi what I want to do is similar to this question here:


https://en.delphipraxis.net/topic/423-rtti-determine-record-helper-type-for-a-base-type/

I am going to create multiple type helpers for enums and I would like
to
look
up the helper and use common methods AsString AsOrdinal to get/set the
values. I am recieving them as json that I dont have control over. I am
using
typeinfo to fill in all the properties but I would like to convert the
strings I am receiving to the enum values semi-automatically.

LString := 'STATUS';

LHelper := GetHelper(LPropInfo^.PropType); // enum proptype

Since there can be multiple type helpers for a type, this will never be
possible. At best you would get a list.

But I don't think there is even a list of type helpers per type.
Sven will need to confirm.


As the active helper(s) for a type change(s) depending on the current
scope
(e.g. in unit A it might be a different helper than in unit B) this is
not
possible. Also helpers are not in any way usable on their own except to
retrieve their RTTI information.

But theoretically it should be possible to generate and get a list of all
defined type helpers, whether they are in scope or not ?


No, because the compiler doesn't keep track of that. It's only interested
in what is in scope *right now*.

I understand such a list is not kept now. That's why I said "theoretically" as in "it is possible to add to the compiler"

To be clear:
I don't think you should add such a list, I'm simply interested in the possibility of such a thing.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to