apach
-
Постов
9 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные apach
-
-
Подскажите, в FMX есть ли возможность определить текущий url загруженной в WebBrowser страницы? Если я открываю страницу WebBrowser.Url := 'site.com', а затем лажу по этому сайту и кликаю, например, на категорию category1, то как програмно определить этот новый урл site.com/category1?
-
9 часов назад, apach сказал:
Как сделать паралельный доступ к БД и из приложения и из сервиса?
Я так понимаю, пока у меня fdquery1.Open, мое приложение не запустится, поскольку база заблокирована сервисом. Как это лечится?
В общем я сам разобрался. Для того, чтобы приложение и сервис без проблем работали на чтение и запись с одной базой данных, я установил для FDConnection.Params.JournalMode = jmWAL. Как это работает нашел тут. Также установил Synchronous = snNormal и FetchOptions.Mode = fmAll. Сейчас приложение запускается без проблем при работающем в фоне сервисе.
-
В 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
-
Ну, в качестве костыльного решения могу предложить менять MultiView.DrawerOptions.TouchAreaSize на 0.
Это должно убрать появление MultiView при слайде пальцем от левого края экрана. А при активации другой закладки возвращать значение по умолчанию.
О! Самое то, все работает как надо. Спасибо за совет!
-
Совершенно верно. Под андроид проставление ControlType=Platform для MutliView и всех компонентов на нем - не помогает.
Господа, так все-таки, как напрочь отключить появление MutliView на втором табе?
Всем доброго дня,
Проблему пока решили только для iOS. Для этого нужно выставить ControlType=Platform для TMutliView и всех вложенных в него контролов.
-
кстати, эти танцы с бубном я вынужден делать из-за компонента TMapView, который как раз лежит на Tab2. MapView всегда отображается поверх MultiView, поэтому я решил задизейблить как-то MultiView, если активна закладка с картой
-
MultiView лежит на Form1, закреплен слева. Выезжает, если провести по экрану пальцем слева направо. Надо как-то запретить ему это делать, если текущий активный таб = Tab2.
-
Есть форма Form1 на ней компонент TabControl1 с двумя табами -Tab1 и Tab2. Кроме этого на форме есть компонент MultiView1 (Mode = PlatformBehaviour, DrawerOptions.Mode = OverlapDetailView).
Как запретить MultiView1 появляться, если активен Tab2? Варианты, типа MultiView1.Visible := false и MultiView1.Enabled := false - не работают.
TMS Pack for FireMonkey
в Альтернативные TWebBrowser
Опубликовано
Форум мертвый. Уже задаю второй вопрос, реакции - ноль и на первый, и на второй ))