VCLStyle неправильно рисует большое всплывающее меню

Проблема с отрисовкой в ​​большом всплывающем меню. Стрелка в конце меню не показывалась и некоторые проблемы с отрисовкой

Как решить эту проблему?

пункты меню, созданные с помощью примера кода:

 procedure TForm1.Button1Click(Sender: TObject);
 var
   mi:TMenuItem;
   I: Integer;
 begin
   for I := 0 to 100 do
   begin
     mi:=TMenuItem.Create(PopupMenu1);
     mi.Caption:='Item '+IntToStr(I);
     PopupMenu1.Items.Add(mi);
   end;
end;

Примеры изображений:

Конец всплывающего меню без стиля (собственный)

Меню без стиля

Конец всплывающего меню со стилем

Меню со стилем

При щелчке по стрелке в меню:

Проблемы рисования

Полноэкранное изображение:

введите здесь описание изображения

Изменить :

-Дельфи ХЕ3

-Добавлено изображение полноэкранного меню.


person zgn    schedule 21.05.2015    source источник
comment
OT: Как решить эту проблему? Уменьшить меню. Никто не хочет пролистывать такое количество элементов ;-) Кстати. какую версию делфи вы используете? Не могли бы вы добавить тег версии Delphi в свой вопрос?   -  person TLama    schedule 21.05.2015
comment
Не маленькое меню. изображения обрезаны. Добавлено 100 пунктов меню. Делфи версии XE3   -  person zgn    schedule 21.05.2015
comment
Та же проблема может иногда возникать в обычных меню (стили не используются). Я помню, что видел похожую ошибку (вертикальные линии) в меню «Пуск» Windows с большим количеством элементов и включенной прокруткой. Но проблема возникала не всегда. При прокрутке с меньшим шагом эта проблема никогда не проявлялась. это показывалось только иногда при прокрутке в течение более длительных периодов времени.   -  person SilverWarior    schedule 21.05.2015
comment
100 пунктов меню в меню просто неправильно, и ожидать, что они будут вести себя должным образом, нереально. Подменю (и возможность вкладывать их в другое подменю) были специально изобретены, чтобы не помещать так много элементов в меню, и ожидать, что пользователь прокрутит такое количество элементов, нелепо. Доктор, мне не больно, когда я стучу пальцем по столу, но очень больно, когда я роняю на него стол. Почему? Когда вы делаете что-то невероятно неправильное для запланированного использования чего-либо, вы не должны удивляться, когда это работает не совсем так, как вы ожидаете.   -  person Ken White    schedule 21.05.2015
comment
на самом деле у меня 60 пунктов меню. 100 пунктов меню для примера приложения, и Windows без проблем управляет более чем 100 пунктами. Это ошибка стиля VCL.   -  person zgn    schedule 22.05.2015


Ответы (1)


Проблема исправлена ​​@RRUZ

Вы можете обновить с: https://github.com/RRUZ/vcl-styles-utils

person zgn    schedule 04.06.2015