Есть ли способ сделать это, поэтому вам не нужно удвоить свой &, чтобы сделать окно списка Delphi не зарегистрированным в качестве горячих клавиш?Почему мой tlistbox требует от меня удвоить мои амперсанды?
У нас есть список наименований лекарств, которые мы заселить в ListBox, некоторые из препаратов имеют & «S в них, как„A & D Мазь“, ну это вроде стремно иметь„_d мазь“ так что мы удваиваем & &, чтобы сделать его «A & D Ointment» единственная проблема в том, что когда мы делаем это, мы не можем использовать текст в списке для чего-нибудь полезного без повторного отформатирования текста.
Нам было бы более удобно просто отключить функцию «горячих клавиш», и я не могу найти способ сделать это с помощью IDE, но я уверен, что есть некоторые причудливые окна, чтобы переопределить это (надеюсь, я не должен переопределить базовый класс)
Мы переопределение функции DrawItem с помощью:
DrawText(List.Canvas.Handle, PChar(List.Items.Strings[Index]), -1, Rect, DT_VCENTER);
Этого просто не бывает. Вы уверены, что имеете дело с «TListBox»? –
Согласен с @Andreas; например в Delphi 7 или Delphi XE3 текст элемента «TListBox» отображается явно с помощью ['DT_NOPREFIX'] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd162498 (v = vs. 85) .aspx # DT_NOPREFIX) (что предотвращает выделение символов подчеркивания с символами '&'). – TLama
@AndreasRejbrand ohhhh dumb, парень, который написал код, рисует его вручную ... –