EXE-файл от Delphi 2006: кнопки / флажки / радио не отображаются, пока мышь не наведена (в Vista / Win7) - PullRequest
5 голосов
/ 09 июля 2010

В Windows Vista и Win7 существует проблема с приложениями, созданными Delphi (мы используем Delphi 2006, но похоже, что другие версии имеют ту же проблему), которые содержат манифест XP.

Все потомки TButtonControl (TButton, TCheckBox, TRadioButton, но не TBitBtn) не отображаются после первоначального отображения формы.Элементы управления появляются, когда вы наводите на них мышь.И это происходит только один раз для каждой формы, пока я не перезапущу приложение.

Похоже, это связано с скрытием / отображением клавиш акселератора (defualt скрыто в Vista / Win7).

Что я могу сделать, чтобы избежать этого?

Ответы [ 4 ]

9 голосов
/ 09 июля 2010
3 голосов
/ 09 июля 2010

Проблема исчезнет, ​​если вы скомпилируете новый манифест XP и замените им WindowsXP.res.

2 голосов
/ 10 июля 2010

Я думаю, что это лучший / самый простой обходной путь .Требуется только одна строка кода в OnCreate основной формы.

0 голосов
/ 07 февраля 2013

процедура TForm1.FormKeyDown (Отправитель: TObject; var Key: Word; Shift: TShiftState); начать если ключ = 18, то ключ: = 0; конец;

...