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

apach

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

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

  • Посещение

Сообщения, опубликованные apach

  1. Подскажите, в FMX есть ли возможность определить текущий url загруженной в WebBrowser страницы? Если я открываю страницу WebBrowser.Url := 'site.com', а затем лажу по этому сайту и кликаю, например, на категорию category1, то как програмно определить этот новый урл  site.com/category1? 

  2. 9 часов назад, apach сказал:

    Как сделать паралельный доступ к БД и из приложения и из сервиса? 

    Я так понимаю, пока у меня fdquery1.Open, мое приложение не запустится, поскольку база заблокирована сервисом. Как это лечится?

    В общем я сам разобрался. Для того, чтобы приложение и сервис без проблем работали на чтение и запись с одной базой данных, я установил для FDConnection.Params.JournalMode = jmWAL. Как это работает нашел тут. Также установил Synchronous = snNormal и FetchOptions.Mode = fmAll. Сейчас приложение запускается без проблем при работающем в фоне сервисе. 

  3. В 12.02.2019 в 18:07, Паршенко Виктор сказал:

    Причина падения FireDAC это - Wait курсор. 
    Решение 1: Если вы используете designTime компонент, добавьте рядом компонент FDGUIxWaitCursor
     

    Спасибо за этот совет, мне он помог наконец-то успешно запустить мой android сервис, который сохряняет в БД sqlite некоторые данные из инета. 

    Но есть другая проблема. Я запускаю свое мобильное приложение, нажимаю кнопочку и запускается фоновый сервис. Пока я нахожусь в главном приложении, сервис работает, я вижу как обновляются данные в таблицах. Все хорошо. Если закрыть приложение, то сервис работает в фоне - тоже все ок. Но если я попытають снова запустить приложение, пока сервис в фоне делает выборку или записывает данные в таблицу, то мое приложение  не запускается - я вижу черный экран. Как только сервис закончил работать с таблицами и сделал небольшую паузу на 5 минут, в этот промежуток времени я могу окрыть свое приложение. Вывод такой: сервис блокирует мою базу данных пока с ней работает. Как сделать паралельный доступ к БД и из приложения и из сервиса? 

    Сервис использует простую схему работы:

    fdquery1.SQL.Text := 'select * from table1'

    fdquery1.Open

    for i:= 0 to  fdquery1.RecordCount -1 do

    begin

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

    end;

    Я так понимаю, пока у меня fdquery1.Open, мое приложение не запустится, поскольку база заблокирована сервисом. Как это лечится?

    FDСonnection LockingMode = imNormal

    FDQuery cmdExecMode = amNonBlocking

  4. Ну, в качестве костыльного решения могу предложить менять MultiView.DrawerOptions.TouchAreaSize на 0.

    Это должно убрать появление MultiView при слайде пальцем от левого края экрана. А при активации другой закладки возвращать значение по умолчанию.

     

    О! Самое то, все работает как надо. Спасибо за совет!

  5. Совершенно верно. Под андроид проставление ControlType=Platform для MutliView и всех компонентов на нем - не помогает. 

    Господа, так все-таки, как напрочь отключить появление MutliView на втором табе?

     

    Всем доброго дня, 

     

    Проблему пока решили только для iOS. Для этого нужно выставить ControlType=Platform для TMutliView и всех вложенных в него контролов.

  6. кстати, эти танцы с бубном я вынужден делать из-за компонента TMapView, который как раз лежит на Tab2. MapView всегда отображается поверх MultiView, поэтому я решил задизейблить как-то  MultiView, если активна закладка с картой

  7. MultiView лежит на Form1, закреплен слева. Выезжает, если провести по экрану пальцем слева направо. Надо как-то запретить ему это делать, если текущий активный таб = Tab2. 

  8. Есть форма Form1 на ней компонент TabControl1 с двумя табами -Tab1 и Tab2. Кроме этого на форме есть компонент MultiView1 (Mode = PlatformBehaviour, DrawerOptions.Mode = OverlapDetailView). 

    Как запретить MultiView1 появляться, если активен Tab2? Варианты, типа MultiView1.Visible := false и MultiView1.Enabled := false - не работают.

×
×
  • Создать...