Реализация 'панели тега' управляет в Delphi?

Мне удалось исправить эту проблему в VS 2015 с помощью следующих шагов.

[1] (Не уверен, что это необходимо) Отключить / GL во всех компонентах

C / C ++> Оптимизация> Оптимизация всей программы> Нет

В файлы .VCXPROJ это:

<WholeProgramOptimization>false</WholeProgramOptimization>

Выключить / LTCG

Библиотекарь> Общие> Генерация временного кода связи

<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>  

[2 ] Более важный шаг, убедитесь, что все компоненты рисуются из одних и тех же каталогов. Мой основной EXE-файл использовал:

Release Include
$(WindowsSdkDir)include\um;$(WindowsSdkDir)include\shared;$(UniversalCRT_IncludePath);$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include
Release Library
$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);

.lib использовал разные каталоги (неправильно):

Release Include
$(VC_IncludePath);$(WindowsSDK_IncludePath);
Release Library
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86

Я изменил каталоги .lib так, чтобы они были такими же, как .exe, и ошибка компиляции исчезла.

5
задан RRUZ 12 October 2009 в 05:12
поделиться

3 ответа

Каждый кликабельный тег не обязательно должен быть отдельным элементом управления. Это просто должна быть область, в которой вы можете обнаружить щелчок.

Предположим, вы представляете каждую область как область Windows . Вы можете определить ширину каждого из них по тексту с помощью функции TCanvas.TextExtent . Затем создайте область с помощью функции типа CreateRectRgn . Для закругленных углов попробуйте вместо этого CreateRoundRectRgn . Вы можете проверить наличие событий мыши в каждом регионе с помощью функции PtInRegion . Вы можете нарисовать границы вокруг них с помощью FrameRgn . Последнее препятствие - нарисовать их на экране, чтобы они все поместились. Вы создаете регионы и знаете их ширину,

3
ответ дан 13 December 2019 в 19:30
поделиться

Если вы используете последнюю версию Delphi, используйте TFlowPanel и некоторые соответствующие элементы управления для тегов. Для этого подойдет простой TButton или TLinkLabel.

7
ответ дан 13 December 2019 в 19:30
поделиться

Существует два возможных решения настраиваемого выравнивания в Delphi 7. Вы можете создать свою собственную потоковую панель, унаследовав от TCustomPanel и переопределив метод AlignControls (), или вы можете установить выравнивание на alCustom и обработать событие OnAlignPosition.

Думаю, я бы выбрал вариант TCustomPanel-производный. TFlowPanel в форме Delphi 2007 использует эту опцию - хотя я должен признать, что я никогда не пробовал себя ...

1
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: