В моем приложении у меня есть много наборов определены:преобразование строки установить тип
eBlockTypes = (btNone,btUndefined,btStone, btYellowFlower, btWoodBrown...);
sMinerals = set of eBlockTypes;
var
mineralsRare: sMinerals;
mineralsPlants: sMinerals;
mineralsAll: sMinerals;
mineralsDeep: sMinerals;
mineralsWalkable: sMinerals;
mineralsDiggable: sMinerals;
то у меня есть объект, который имеет «sMinerals», как один из его полей. Возможно ли прочитать «имя» набора при загрузке свойств объекта из файла?
Редактировать: подробнее. Допустим, что определение объекта в файл выглядит следующим образом:
[item]
Computer
[requires]
3 Circuit board
1 Medium CPU
3 Plastic
[placement]
mineralsWalkable
так что я могу разобрать файл и прочитать все свойства, кроме множества «mineralsWalkable». Я знаю, что я мог бы сравнить эту строку с некоторыми TStrings, содержащими все имена наборов, но quiestion: возможно ли это установить, преобразовывая строку в переменную как-то?
Конечно, это возможное. Но вам нужно [изменить], чтобы дать более четкое объяснение того, что вы хотите сделать, прежде чем мы сможем рассказать вам, как это сделать. –
Поиск [GetEnumValue] (http://docwiki.embarcadero.com/Libraries/XE4/en/System.TypInfo.GetEnumValue) и [GetEnumName] (http://docwiki.embarcadero.com/Libraries/XE4/en/System .TypInfo.GetEnumName). Это должно помочь в решении вашей проблемы ... наряду с довольно простым заявлением. – Sherlock70
из того, что я прочитал, они могут преобразовать строку в элемент set, но не устанавливать 'type' – laggyluk