Перейти к содержанию
Fire Monkey от А до Я

Dozent

Пользователи
  • Постов

    115
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Активность репутации

  1. Like
    Dozent отреагировална 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;  
     
  2. Like
    Dozent получил реакцию от Error в В продолжения темы растягивания видео по контролу   
    Кажется я разобрался) Проблем была в том что я веду разработку на ноуте) Есть свои особености резрешения и экрана))
  3. Like
    Dozent отреагировална enatechno в Создать в рантайме перетаскиваемый компонент   
    procedure TForm1.Label7Click(Sender: TObject); var Phase: TCalloutRectangle; begin Phase := crtPhase.Clone(ScrollBox1) as TCalloutRectangle; Phase.OnMouseDown := crtPhaseMouseDown; Phase.OnMouseMove := crtPhaseMouseMove; Phase.Parent := ScrollBox1; Phase.Position.X := crtPhase.Position.X + 10; Phase.Position.Y := crtPhase.Position.Y + 10; Phase.Visible := true; end; Замените у себя эту процедуру и удалите Button1 (как я и сказал выше, TButton не является TShape - поэтому и ошибка).
  4. Like
    Dozent получил реакцию от Alex Bozhko в При изменении размеров или положения компонентов на форме всё проподает   
    Знаете! Я снял галки в Multi-Device Preview с Айфон 4 и Айфон5 ни чего не закрывал и проблема пока не появляется))) Если появится я попробую ваш совет
  5. Like
    Dozent получил реакцию от zairkz в При изменении размеров или положения компонентов на форме всё проподает   
    Знаете! Я снял галки в Multi-Device Preview с Айфон 4 и Айфон5 ни чего не закрывал и проблема пока не появляется))) Если появится я попробую ваш совет
  6. Like
    Dozent отреагировална Brovin Yaroslav в Почему не изменяется Font.Style и Font.Size?   
    Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.Size]; В FireMonkey все, что отвечает за визуальную часть (отображение контрола) обычно выносится в стиль. Однако, не всегда удобно создавать новый стиль, только, когда нужно, например, поменять размер шрифта в TLabel. Поэтому, чтобы позволить пользователям удобно менять такие настройки, как шрифт. Шрифт выделен в отдельное свойство TLabel.Font. При выделении шрифта отдельным свойством, нужно понимать, что при таком подходе контрол "не знает", откуда ему брать шрифт: то ли из свойства, то ли из стиля.
     
    Поэтому, чтобы контрол знал, откуда ему брать шрифт для отображения: из стиля или из свойства Font, введено свойство TLabel.StyledSetting. Которое говорит контролу, какие характеристики шрифта нужно брать из стиля, а какие можно взять из свойства TLabel.Font. По умолчанию, StyledSettings настроены так, что все берется из стиля. В вашем случае, нужно сбросить галку напротив значения ssSize и ssFont.
     
    Подробная информация есть на Embarcadero Doc Wiki: http://docwiki.embarcadero.com/RADStudio/XE5/en/Setting_Text_Parameters_in_FireMonkey
  7. Like
    Dozent получил реакцию от Dai12lDymn1 в Кнопка с рисунком   
    Добрый день!
     
    Создал в палитре стилей кнопку с картинкой!
    Указал у кнопки этот стиль в свойстве StyleLookup.
    Как мне теперь картинку туда положить?

  8. Like
    Dozent получил реакцию от Kitty в Не воспроизводится видео   
    Андрей, не это я не вам Абсолютно, а девушке у которой всё работает) А Вам вообще отдельное спасибо за ваш блог!!! Много там нужного и полезно, а с проблемой я справился!!!
    Я по своей невнимательности забыл что вертикальная палка это операция или и почему-то влупил AND
    Всё работает, простите меня за не внимательность....
    procedure TForm1.Play(const sFileName: string); var PackageName: Jstring; ActiveManager: JActivityManager; sFile, exe: string; Intent: JIntent; Data: Jnet_Uri; begin try sFile := sFileName; // MX player: https://sites.google.com/site/mxvpen/api PackageName := StringToJString('com.mxtech.videoplayer.ad'); ActiveManager := GetActivityManager(); ActiveManager.killBackgroundProcesses(PackageName); // exe := System.IOUtils.TPath.GetExtension(sFile); Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW); Data := StrToJURI(sFile); Intent.setDataAndType(Data, StringToJString(PWideChar('video/') + exe)); Intent.setPackage(PackageName); { Intent.putExtra(StringToJString('end_by'), StringToJString('user')); https://github.com/NineWorlds/serenity-android/issues/134 http://stackoverflow.com/questions/22408413/how-to-stop-android-mx-player-on-back-pressed } Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY); SharedActivity().startActivity(Intent); finally end; end;
  9. Like
    Dozent получил реакцию от Andrey Efimov в Не воспроизводится видео   
    Андрей, не это я не вам Абсолютно, а девушке у которой всё работает) А Вам вообще отдельное спасибо за ваш блог!!! Много там нужного и полезно, а с проблемой я справился!!!
    Я по своей невнимательности забыл что вертикальная палка это операция или и почему-то влупил AND
    Всё работает, простите меня за не внимательность....
    procedure TForm1.Play(const sFileName: string); var PackageName: Jstring; ActiveManager: JActivityManager; sFile, exe: string; Intent: JIntent; Data: Jnet_Uri; begin try sFile := sFileName; // MX player: https://sites.google.com/site/mxvpen/api PackageName := StringToJString('com.mxtech.videoplayer.ad'); ActiveManager := GetActivityManager(); ActiveManager.killBackgroundProcesses(PackageName); // exe := System.IOUtils.TPath.GetExtension(sFile); Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW); Data := StrToJURI(sFile); Intent.setDataAndType(Data, StringToJString(PWideChar('video/') + exe)); Intent.setPackage(PackageName); { Intent.putExtra(StringToJString('end_by'), StringToJString('user')); https://github.com/NineWorlds/serenity-android/issues/134 http://stackoverflow.com/questions/22408413/how-to-stop-android-mx-player-on-back-pressed } Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY); SharedActivity().startActivity(Intent); finally end; end;
  10. Like
    Dozent отреагировална d7d1cd в Вызов клавиатуры в Windows 8-8.1   
    Хабр Вам в помощь! http://habrahabr.ru/company/intel/blog/163333/
  11. Like
    Dozent отреагировална estra в Не срабатывают точки останова при отладке на Андроид устройстве   
    Здравствуйте, Ярослав.
     
    Хотел написать это через ЛС, но почему-то они вам не отправляются, по-этому напишу здесь.
     
    С учетом высокой актуальности данной темы, не могли бы вы создать какой нибудь раздел (создать пост, написать статью) где во-первых были бы перечислены устройства, на которых отладка гарантированно работает (исходя из опыта и тестов разработчиков), и во-вторых был бы как можно более подробный анализ возможных причин этой проблемы и способов их устранения (описанное в данном посте не помогает)?
  12. Like
    Dozent отреагировална estra в Почему отладчик показывает значение вещественной переменной типа Single, не 0.3, а 0.3000000001192029?   
    так и должно быть.
     
    Обрезать? смотря для чего. Для представления в виде строки может и нужно будет. Вот код, поэкспериментируйте с 2 последними цифрами:
    var a: Double = 0.300000011920929; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage( FloatToStrF( a, TFloatFormat.ffFixed, 4, 2 ) ); end; > В райнтайме отображается 0,3!
     
    Посмотрите какое значение указано в параметре DecimalDigits
  13. Like
    Dozent получил реакцию от Brovin Yaroslav в [TFDQuery] Получение выходных параметров из хранимки FireBird   
    Можно закрыть RETURNING Unified Support (FireDAC)
  14. Like
    Dozent отреагировална AngryOwl в Xe6 глюки TLang   
    Не хочется "никого" обижать)), но TLang - самый глючный компонент из всех с чем мне приходилось иметь дело. Тут, на счет "эмоций", я с Вами полностью согласен.
    Поэтому - рекомендую либо самому писать, либо искать адекватное стороннее решение.
    На публикацию своего решения у меня пока, к сожалению, нет времени. Как только появится время для того чтобы его оформить в виде компонента и библиотеки - обязательно сделаю и выложу в свободный доступ.
     
    P.S. Свое решение основано на простых текстовых INI-файлах. Работает везде, в т.ч. и на мобильниках, и очень быстро. Над удобством стоит конечно поработать, но в текущий момент меня собственное решение более чем устраивает.
  15. Like
    Dozent получил реакцию от Nix0N в [Windows] Полученный файл записи с микрофона не звучит при воспроизведении. В чем причина?   
    Доброй ночи, проблему решил! Зашёл в "Устройства воспроизведения" и удалил не используемые! 
    Первым был микрофон который не использовался, вторым тот что работал, возможно я ошибаюсь, но похоже получается что берётся первый из списка микрофон, а не тот что по умолчанию!
    Но проблема решена всё пишет!
  16. Like
    Dozent получил реакцию от brunnengi в [Windows] Полученный файл записи с микрофона не звучит при воспроизведении. В чем причина?   
    Доброй ночи, проблему решил! Зашёл в "Устройства воспроизведения" и удалил не используемые! 
    Первым был микрофон который не использовался, вторым тот что работал, возможно я ошибаюсь, но похоже получается что берётся первый из списка микрофон, а не тот что по умолчанию!
    Но проблема решена всё пишет!
×
×
  • Создать...