Как я могу зафиксировать форму для планшета в Delphi XE2?

У меня проблема. Я создаю полноэкранную форму в Delphi XE2. Затем я запускаю свое приложение на планшетном ПК с Windows 7 на борту, где разрешение экрана 1024x600. Потом переворачиваю планшет (сейчас разрешение 600х1024) и у меня возникли проблемы с элементами на форме (некоторые кнопки за экраном и т.д.). Могу ли я настроить проект так, чтобы при повороте планшета моя форма не вращалась?


person 0xFF    schedule 03.12.2014    source источник
comment
Вы используете VCL или FMX?   -  person Jerry Dodge    schedule 03.12.2014
comment
Я использую ВКЛ. Это в принципе?   -  person 0xFF    schedule 04.12.2014
comment
Подход к решению вашей проблемы очень важен для используемой вами структуры. Это как покупать запчасти для Шевроле, а не запчасти для Форда.   -  person Jerry Dodge    schedule 04.12.2014
comment
Хорошо я понял. Если я использую VCL, могу ли я исправить свою ситуацию?   -  person 0xFF    schedule 04.12.2014
comment
Почему бы вам не решить настоящую проблему? Никто не любит читать вещи сбоку. Почему бы вам не заставить вашу программу работать с вращением, а не против него?   -  person David Heffernan    schedule 04.12.2014
comment
Потому что владелец этой программы не хочет видеть нашу программу в портретной ориентации. Я сказал ему, что нам нужно адаптировать программу для этой ситуации (я думаю, что это необходимо и логично), но он не хочет это слушать. Вот почему я хочу знать, возможно ли это в теории? И как я могу это сделать?   -  person 0xFF    schedule 04.12.2014
comment
Для Windows 8 существует SetDisplayAutoRotationPreferences. .   -  person Sertac Akyuz    schedule 04.12.2014
comment
Это здорово, но мне нужна поддержка всех систем от Windows XP SP3. Но спасибо.   -  person 0xFF    schedule 05.12.2014
comment
Вам нужно пересмотреть свои ожидания   -  person David Heffernan    schedule 05.12.2014


Ответы (1)


Согласно этой статье MSDN вы можете обнаружить, что экран был повернут прослушивание сообщения WM_DISPLAYCHANGE.

Однако тогда вы столкнетесь с серьезной проблемой. Теперь вам нужно нарисовать все ваше приложение с поворотом на 90 градусов. Это займет совсем немного времени. Честно говоря, я не верю, что это приемлемое решение. Я подозреваю, что жизнеспособные варианты:

  • Измените свою программу так, чтобы она работала в обеих ориентациях, или
  • Настройте устройство так, чтобы оно всегда находилось в нужной вам ориентации.
person David Heffernan    schedule 04.12.2014
comment
Спасибо, это полезная информация. Я не знаю, как я могу вращать кнопки, заметки и т. Д., Надеюсь, Google мне поможет. - person 0xFF; 05.12.2014
comment
Ты не сможешь этого сделать - person David Heffernan; 05.12.2014