Galkov писал(а):
Во-первых, принудительное добавление нулика в хвост - это один из способов уговорить Delphi что это таки строка а не символ, для односимвольной строки.
А вот тут мне не очень понятно чем "односимвольная строка" отличается от остальных. Не, я знаю в чём разница между типами Char и string, но на уровне кода с этим никогда проблем не было. Как минимум присвоение Char -> string, 'A' -> string происходит незаметно. Если у нас свойства типа string - то зачем нам ещё беспокоиться добавлять туда 0? Делфи и так все string гарантирует с конечным 0.
Galkov писал(а):
В этом случае таковая строка помещается в соответствующую секцию ресурса, откуда возвращается только как PChar.
А свойства у нас типа string - все равно PChar неявно сканируется на наличие ограничивающего 0, затем из этого конструируется тот же string и присваивается свойству. Поэтому в моем пакете в Share она сразу возвращается как string. А ещё она знает с какой системной кодировкой она помещалась в ресурсы, чтобы в юникодном режиме отображалась на всех системах корректно (поскольку HiAsm и кодогенератор в ресурсы пишет строку в кодировке системы).
Galkov писал(а):
И найти таки вариант записи для односимвольной строки.
Все равно не понимаю сути проблемы...
Galkov писал(а):
ты ничего не сказал про мой код из предыдущего поста
Я смотрел только на оформление, поэтому если функционал тот же - не имею чего возразить.
Galkov писал(а):
Вот это я и называю "лесенкой", особого семантического смысла не имеющего.
Так тут вопрос, так сказать, в "эстетической составляющей", то есть, удобство восприятия. А это дело привычки, которые у каждого свои. Поэтому не готов настаивать. Просто выбрал для себя "канонически правильно", согласно гайдам и кодам в том же VCL или других приличных местах.
Главное чтобы было "системно", а не кто в лес, кто по дрова, чего можно насмотреться по кодам наших компонентов.
Galkov писал(а):
Я его знаю
Да, тоже не сомневаюсь.