• 0
Yarpda

Другая ориентация одной из форм

Вопросы

Есть проект на Андроид, в нем все формы портретной ориентации (ориентация отключена путем enabled custom orientation (что само по себе тоже странно, но сейчас не об этом)).

Нужно сделать так, что одна из формы (вызываемая кнопкой) сразу открывалась  в альбомной ориентации. Никакие настройки формы типа FormFactor не дают нужного результата.

Подскажите как справиться с задачей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

  • 0
В 07.03.2018 в 02:22, Равиль Зарипов (ZuBy) сказал:

Настройки и не помогут, нужно кодом переключение делать

Да я уже это понял. Но даже в коде это реализовать не получилось (по материалам форума).  Я уже вышел из ситуации, хотя и не очень хорошо как мне кажется, вывожу надпись, чтобы перевернули устройство, а при повороте отображаю уже нужную форму. А так чтобы она сразу отображалась в ландшафтной ориентации  и больше никак не реагировала на смену ориентации телефона сделать не получилось. Вроде элементарная вещь, но сделать не выходит...

(Delphi 10.1 Berlin)

Изменено пользователем Yarpda
дополнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Sashar333
      В Delphi XE8 все приложения компилировались нормально и работали при любой смене ориентации телефона!
      Переустановил XE8 на 10,1 Berlin, теперь все компилированные приложения(включая ранние) при смене ориентации вылетают
      Такое ощущение что проблема в Delphi. но что не могу понять...
      То есть если запускать или компилировать приложение при любой ориентации, то оно запустится и работает нормально, но стоит только повернуть телефон то сразу оно закрывается!
      Пробовал и пустую форму и примеры DelphI проекты, все закрывается при смене. И разные стили менял
      Все приложения из Play Маркета работают отлично.
      В чем может быть проблема? версия андройда 6.0 модель Redmi Note 4
    • От Pax Beach
      Я использую принудительную ориентацию экрана на Android устройстве.
      Что это означает?
      Когда открывается приложение, экран переворачивается в то положение, которое я устанавливаю по умолчанию, или которое было установлено в настройках приложения (состояние читается при запуске приложения).
      Приведу пример кода, как я его написал. Здесь что-то лишнее, что-то может стоит доработать.
      Есть две проблемы в примере:
      1. Чтобы изменить ориентацию экрана, приходится закрывать (уничтожать) приложение, а потом открывать заново.
      2. Когда стоит режим ландшафт, то срабатывает автоматический переворот экрана по сенсору, когда поворачиваешь экран на 180 градусов. А когда стоит режим портрет, автоматически экран не переворачивается.
       
      В настройках проекта так:

       
      В Object inspector для главной формы так:

       
      В модуле проекта вот так:
      begin Application.Initialize; TAndroidHelper.Activity.getWindow.addFlags (TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); Application.FormFactor.Orientations := [TFormOrientation.Portrait, TFormOrientation.InvertedPortrait, TFormOrientation.Landscape, TFormOrientation.InvertedLandscape]; Application.CreateForm(TDM, DM); Application.CreateForm(TfmMain, fmMain); VKAutoShowMode := TVKAutoShowMode.Always; Application.Run; end.  
      В модуле главной формы:
      procedure TfmMain.FormShow(Sender: TObject); begin if DM.setOrientation(TAndroidHelper.Activity) then Invalidate; end;  
      В дата-модуле вот так:
      function TDM.setOrientation(Activity: JActivity): boolean; var orient: Integer; begin result := False; if DM.GetSettingsBoolean('IsOrientationLandshaft', true) then orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_LANDSCAPE else orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_PORTRAIT; try if Activity.getRequestedOrientation <> orient then begin Activity.setRequestedOrientation(orient); result := true; end; except result := False; end; end;  
       
    • От Rusland
      Никак не могу разобраться со сменой ориентации в приложении.
      Когда в Project options -> Application -> Orientation не стоит галочка Enable custom orientation, то при разных поворотах устройства приложение само переворачивается (тут все понятно).
      Мне же нужно что была только горизонтальная ориентация обычная и перевернутая (Landscape и  Inverted landscape). 
      Я ставлю галочку Enable custom orientation и выбираю Landscape home right и Landscape home left. В приложении ориентация становиться Landscape home right и как бы я не переворачивал устройство, ориентация не меняется. Собственно об этом и в справке написано, но почему? Вдруг пользователю во время работы нужна ориентация Landscape home left? Автоматически меняться не будет, нужно вручную?
      Объясните как правильно менять ориентацию?
       
      PS. Все темы про раздела прочитал, понимание не пришло.
      PPS. 
      Application.Initialize; Application.FormFactor.Orientations := [TFormOrientation.Landscape, TFormOrientation.InvertedLandscape]; Application.CreateForm(TForm1, Form1); Application.Run;  
    • От Alex7wrt
      Здравствуйте.
      Есть следующая проблема: в приложении реализована смена отображения контролов при повороте экрана. Все работает нормально, то есть экран поворачивается и контролы меняют свои позиции. Однако, если свернуть приложение, после чего повернуть экран, а затем снова развернуть приложение, то ничего не отображается (точнее отображается черный экран) и приложение зависает. Это происходит если в свернутом режиме повернуть экран не в ту ориентацию, в которой он был до сворачивания. Если же поворачивать экран много раз, а в конце вернуть в эту же ориентацию, то приложение нормально запускается. Проблема не исчезает, если убрать обработку события OnResize формы. Среда XE10. Прошу подсказать, в чем может быть проблема. 
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу