Значки пользовательских компонентов, не отображаемые в Delphi 10.3 - PullRequest
1 голос
/ 26 апреля 2020

Я только что перешел с Delphi 7 на 10.3 и пытался установить некоторые из моих старых (VCL) пользовательских компонентов. Наконец-то мне удалось получить код для компиляции, но у меня возникли проблемы с чем-то, что кажется тривиальным. Значки для пользовательских компонентов в палитре показывают то, что выглядит как значок по умолчанию вместо ожидаемых значков. Здесь много постов (большинство из них старше 5 лет) о проблемах со значками компонентов, и я попытался самостоятельно скомпилировать файл .r c, включая {$ R .rc} в исходном коде пакета и используя Диалог Project / Resources и Images для указания значков. Я пробовал 8-битные, 16-битные, 24-битные иконки 24x24. Затем, в качестве теста, я следовал точной процедуре, показанной здесь , которая включала в себя некоторые более свежие материалы по этой проблеме, которые я смог найти. Я попытался с растровыми файлами в полном разрешении и 32bpp и 24x24 на 8bpp. В обоих случаях значок по умолчанию показывался для этого тестового компонента. Я, наверное, упускаю из виду что-то простое, но я в недоумении от того, что попробовать дальше. Есть ли другая процедура для указания значков для пользовательских компонентов в 10.3 по сравнению со старыми версиями?

Редактировать: обновление - я переустанавливал свой пользовательский компонент, а затем перезагружал его, а затем смог увидеть правильный значок, отраженный в палитре, но здесь это становится странным. У тестового компонента, на который я ссылался выше, по-прежнему отображается значок по умолчанию даже после переустановки и перезагрузки, и, что еще более странно, во-вторых, когда я использую свой пользовательский компонент в форме, значок в палитре превращается в значок TEdit (компонент является потомком TEdit). Закрытие Delphi и повторное открытие восстанавливает значок, пока он не будет использован снова.

1 Ответ

0 голосов
/ 28 апреля 2020

Я не уверен, должен ли я отвечать на свой вопрос, но просто хотел обновить, если это кому-нибудь поможет позже. Наконец-то я смог отобразить значок примера тестового компонента, используя опцию -nocache, как описано здесь . Затем я очистил кэш реестра для моего собственного компонента (dclusr), как показано в том же посте, а затем также изменил растровые изображения с 8 до 32 бит в секунду, и теперь все, кажется, работает как ожидалось. Затем я очистил разделы реестра для примера проекта, и я могу работать без опции -nocache, и все значки отображаются нормально, так что я думаю, что это в основном проблема с кешем, которую я никогда бы не нашел без ссылочного поста.

...