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

Bob32

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

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

  • Посещение

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

    1

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

  1. 1 час назад, Евгений Корепов сказал:

    Какая версия среды у вас и какая версия Indy? Возможно проблема в старой версии Indy, погуглите "delphi indy OffsetFromUTC" - там были какие то проблемы, и вроде они исправлены.

    У меня вот такая версия (в Rio с последним апдейтом). Узнать версию - киньте любой компонент Indy на форму, правой кнопкой по компоненту и About. 

    image.png.809e6947de20e9528bfd9fdbcd8e82b7.png

    Повторюсь - на андроиде я не проверял правильность работы.

    Версия, такая же, как у Вас.

    попробую вот это как стемнеет )

     

    DB48E037-7D0F-4863-8EFC-8D94B46E8FD5.png

  2. 10 часов назад, Евгений Корепов сказал:

    Протокол SNTP

     

    Помимо NTP, существует упрощенная версия этого протокола - SNTP (Simple Network Time Protocol). Он реализован для синхронизации времени конечным клиентом, поскольку все преимущества протокола NTP проявляются именно в сети серверов, а для получения показаний конечным пользователем NTP излишне сложен. Поэтому для синхронизации времени конечными компьютерами и серверами был предложен протокол SNTP (SNTPv3: 1992 г., RFC1361 и 1995 г., RFC1769; SNTPv4 включён как подпротокол в NTPv4).

    На самом деле SNTP - это не новый протокол, а способ использования NTP-пакетов и NTP-серверов в приложениях, где не требуется высокоточное время, либо оно недостижимо. В этом случае клиент использует только часть информации UDP-пакета NTP-сервера. SNTP-клиент может работать с любыми версиями NTP-серверов, и кроме них - с особыми SNTP-серверами, которые в откликах заполняют только необходимые данные UDP-пакета.

    Таким образом, "облегченный" SNTP образует не сеть синхронизирующихся серверов, а пары "клиент-сервер". Любой NTP-сервер является одновременно SNTP-сервером. Клиент, который не передаёт полученное время дальше, может работать как NTP- или SNTP-клиент, в зависимости от условий. Для SNTP, как и для NTP, зарезервирован 123-й UDP-порт.

     

    
    Uses IdSNTP, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;
    ....
    procedure TForm1.Button2Click(Sender: TObject);
    Var IdSNTP: TIdSNTP;
    begin
      IdSNTP:=TIdSNTP.Create(Self);
      IdSNTP.Host := 'ntp1.stratum2.ru';
      ShowMessage(DateTimeToStr(IdSNTP.DateTime));
      IdSNTP.Free;
    end;

     

    Спасибо огромное персонально!

    Все работает!

    Но время отдается в каком-то американском часовом поясе (отличается от московского на 10 часов).

    хелп на класс TIdSNTP у меня почему-то отсутствует. (

    можно конечно по колхозному к московскому времени привести, но может есть более правильный метод (или свойство) этого класса?

  3. 4 часа назад, krapotkin сказал:

    если даже не использовать NTP

    При каждом HTTP запросе в ответе приходят заголовки. Например

    Connection: keep-alive
    Strict-Transport-Security: max-age=0
    Content-Encoding: 
    Content-Type: text/html; charset=utf-8
    Date: Fri, 05 Apr 2019 07:02:28 GMT
    Server: nginx
     

    Те - брать и читать какой-нить урл и брать время из заголовков? 

    А NTP время как отдают? Может есть у кого-то пример кода?

  4. Добрый день!

    подскажите пожалуйста, а есть компоненты, либо другой проверенный способ, чтобы получать точное время от каких-либо централизованных служб в Инете?

     

    мне нужно синхронизировать по времени события на разных телефонах.

  5. В ‎22‎.‎03‎.‎2019 в 10:19, #WAMACO сказал:

    Пользуюсь и платной и бесплатной версией.

    Описание очень подробное http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf

    Все основные варианты взаимодействия описаны подробно.

    Извините, за этот поток вопросов )

    а какая там реально используется СУБД? и какой используется механизм блокировок в части одновременной записи в поля БД?

    (два пользователя пытаются одновременно записать что-то в одно и тоже поле, одной и той же записи)

  6. В ‎22‎.‎03‎.‎2019 в 10:19, #WAMACO сказал:

    Пользуюсь и платной и бесплатной версией.

    Описание очень подробное http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf

    Все основные варианты взаимодействия описаны подробно.

    кстати, а есть ли там возможность использовать как-то системное время на сервере?

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

    возможно, есть другие сервисы для реализации этого...... 

  7. 23 часа назад, #WAMACO сказал:

    Пользуюсь и платной и бесплатной версией.

    Описание очень подробное http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf

    Все основные варианты взаимодействия описаны подробно.

    Спасибо, изучил. Действительно подробно. 

    я правильно понимаю, что эти компоненты на низком уровне используют такой же трафик обмена по типу Json или rest? А он шифрованный? А что на практике означает, что триальная версия работает только с release версией? Отладка работать не будет?

  8. 3 часа назад, #WAMACO сказал:

    совершенно верно!

    + получаете дополнительно порт ко всем популярным облачным сервисам (уверяю, пригодится)

    я клиенту за вечер наваял прототип, он офигел, вечером того же дня проинвестировал меня! ?

    А Вы пользуетесь платной или используете бесплатную версию? 

    (Там вроде это можно, но только для релизных версий)

    Хочется чуть подробнее понять - как будет выглядеть обмен с базой через эти компоненты. Может можно с Вами созвонится и чуть подробнее поспрошать? )

  9. 2 часа назад, Евгений Корепов сказал:

    Соблазн велик! Но не поддавайтесь ереси! ? Ну или поддавайтесь ? 

    Сделав все самостоятельно, вы не только сэкономите деньги, но и получите бесценный опыт. И получите площадку для сотен приложений. Тот же myclouddata очень ограничен - бесплатный аккаунт 1000 записей в таблице это ниочем. Да и платный с миллионом записей тоже не поражает воображение. Одно из моих приложений за пару лет накидало в таблицу с регистрациями FCM 600 тысяч записей. Так что вы (или заказчик приложения) может упереться в ограничение в самый неподходящий момент и придется судорожно искать другой сервис. 

    Что меня ещё в этой библиотеке подкупило - это наличие компонент работы с Facebook, и другими соц сетями - мне как раз надо было иметь возможность, при желании пользователя, паблишить определенную инфу в его аккаунт в соц. Сетях. 

    Плюс там есть компонент для работы с бесплатной open street map (Гугл мапс сейчас - это только 28 000 бесплатных запросов в месяц)

     

     

  10. 5 часов назад, #WAMACO сказал:

    http://www.myclouddata.net

    и к ним компоненты для комфортной работы

    https://www.tmssoftware.com/site/tmsfmxcloudpack.asp

    Библиотека компонентов = недетская! и цена вполне вменяемая.

    Минуточку, а что это фактически означает - допустим я покупаю хостинг на myclouddata, покупаю компоненты в этом пакете (включая ту, которая нужна для доступа на myclouddata) - и что, мне не надо париться со всяким огородом по получению доступа через rest/json ?

    что ты получаешь вместе с этой компонентой?

  11. 1 минуту назад, Barbanel сказал:

    SqLite - это тоже почти стандарт для маленьких БД на мобильных устройствах (ну или в принципе маленьких локальных БД). Однопользовательская. Очень упрощенная.

    Цены на UniDAC можно найти здесьЯ не агитирую за них, просто в нашем случае было необходимо шифрование. Купили, и с тех пор используем везде, удобно.

    про SQLite - те это не централизованная СУБД, которой может пользоваться много инстансов приложения (а она стоит где-то на централизованном сервере) - это субд, которая вертится для одного приложения на одном телефоне. верно?

  12. 2 часа назад, Евгений Корепов сказал:

    1. Хостинг рекомендую https://masterhost.ru/service/hosting/individual/ , это один из старейших и надежнейших хостеров России, там вы получите сразу все вам необходимое - MySQL, PHP любимой версии, если проект попрет, то сможете добавлять процессоры, память и т.д. Так же сможете зарегить домен под это дело, и при надобности получить SSL сертификат на этот домен. Все остальные хостинги  игнорируйте, по крайней мере Российские. За почти 20 лет использования, мастерхост ни разу не подвел, а только радовал новыми плюшками.

    image.thumb.png.f48d34640a05c0ed4ba428de3d6dccf4.png

    Реализация в вашем случае примерно такая:

    1. MySQL на хостере - обеспечит вам работу и 10 миллионов активных пользователей. Но важно правильно  спланировать структуру базы, структуру таблиц и структуру индексов таблиц. Если вы в этом не профи, то лучше нанять профи - ибо это фундамент, который потом очень сложно будет изменить.

    2. PHP на хостере - прокладка между базой и запросами/ответами приложения. Рекомендую использовать самую свежую версию PHP, чтоб потом не пришлось перекраивать код удаляя deprecated функции и конструкции.

    3. Протокол обмена - REST. Не вздумайте погружаться в теорию, читать про RESTful и пытаться реализовывать, этим занимаются только люди под тяжелыми наркотиками и обычно без единого законченного реального проекта. Достаточно того что приложение будет отправлять на сервер GET запросы получать JSON ответы. Можете подогнать протокол под существующие в Delphi компоненты TRESTClient, а можете и сами на стороне приложения разгребать JSON и получать нужные данные. Это совсем не сложно.

    4. Приложение - посылает на сервер HTTP GET (ну или POST) запросы посредством THTTPClient, получает ответы в виде JSON, парсит их и так далее. Все содержимое предыдущего предложения - в отдельном потоке. Ну или используйте готовый TRESTClient - если готовы разбираться в нюансах его работы.

    Вот как то так.

     

    Спасибо огромное! очень дельный и полезный для меня ответ! обязательно соберу информацию про хостинг и компоненту , и если позволите, еще попозже задам пару глупых вопросов! )

  13. 6 часов назад, Barbanel сказал:

    При всем уважении, позвольте не согласиться.

    Именно для стартапа в условиях 100500 ограничений лучше написать одно приложение сразу для всех платформ (может быть поначалу страшненькое и кривенькое), но одно. Быстро и просто.
    Это называется MVP - minimal value product. Как только он начнет работать - можно набирать юзеров и идти к инвесторам.
    Потом уже можно либо причесывать это одно приложение, либо переписывать его для каждой платформы нативно.
    Все имхо.

    Да, тоже подписываюсь под каждым словом! )

     

    Вы вероятно опечатались и имели в виду MySQL. "Прямой доступ не используем" - это не моветон, это безопасность прежде всего, а сегодня еще и GDPR, с которым к сожалению нужно мириться и поддерживать.

    Точно - опечатался /((( Сорри!!!! MySQL

    6 часов назад, Barbanel сказал:

    .

    Невопрос, держи помидор)))) Мы используем UniDAC и БД SQLite. UniDAC позволяет шифровать на лету эту БД и работает превосходно на всех используемых платформах (Win, iOS, Android, Mac OS). Компонент платный. За другие не могу сказать, не использовал.

    БД SQLite - это какая-то локальная субд? (исполняемая на телефоне) и почем этот платный UniDAC? Где Вы его берете? )

    СПАСИБО!

     

     

  14. 7 часов назад, haword сказал:

    бесплатный совет - для СТАРТАПА с количеством пользователей хотя бы от 1000 человек, лучше использовать нативные средства разработки, Xcode и Android Studio, если хотите что-то серьезное написать. если просто поиграться на взлетит не взлетит а если что потом перепишем на натив, то да, можно и на делфи.

    бесплатных хостингов БД нет. 

    логика в этом есть, но я знаю только Дельфи, и то - , точнее не знаю, а знал, лет 10 назад ;)

    Поэтому, приходится решать задачу в тех инструментах, которыми владеешь.

  15. Добрый день, Друзья!

     

    У меня есть вопросы, которые являются типовыми для многих задач доступа к СУБД из мобильных приложений. Каждый опытный девелопер как-то их решал, по своему, в своих задачах...

    Я бы хотел обобщить их опыт и получить несколько ценных рекомендаций от бывалых людей по следующим вопросам:

    Имеем Delphi 10.3. Пишем несложное приложение, которому требуется общая БД. В ней будет хранится база для аутентификации пользователей и некие служебные таблички со всякой всячиной.

    Задача - правильно организовать доступ к этой базе из мобильного приложения. Приложение будет иметь версии под Android и IOS. Количество пользователей приложения - до 50 тыс человек (если повезет).

    Как я вижу этот процесс (по итогам анализа этого форума и статей в Инете):

    Делаем базу на MуSQL, которая хостится на каком-то коммерческом хостинге. Прямой доступ к базе не используем, тк это моветон... поднимаем на серверной части что-то типа json-а, через который общаемся с базой посредством SSH (шифрация трафика не обязательна, но крайне предпочтительна)

    Теперь Вопросы, на которые хочется получить ответы бывалых:

    1) Где хостить эту базульку? (чтобы на этом хостинге был сам сервис СУБД и какая-то их типовая примочка сверху, которая может стать серверной частью для json) - интересуют рекомендации по выбору сервисов хостинга

    2) Если есть другие проверенные и полюбившиеся сервисы хостинга чисто СУБД-шныы (без этой примочки сверху) - буду также признателен за их рекомендацию.

    3) MSSQL - нормальный выбор для данной задачи? у меня есть опыт работы с MS SQL. MySQL выбран из-за некоторой похожести и бесплатной лицензии.

    4) (чувствую, щас в меня полетят помидоры ;-|) ) Какие компоненты нужно использовать для доступа по данной схеме к данным на стороне Дельфи? (я начинающий программер под firemonkey - извините....)

    5) Нормальная ли вообще это схема или Вы можете порекомендовать что-то другое, более простое и типовое, в плане реализации этой  схемы организации доступа к единым централизованным данным приложения?

    Спасибо!

    Буду крайне признателен за любую информацию по данным вопросам.

  16. Добрый день, Друзья!

    подскажите пожалуйста, можно ли сделать так, чтобы добавляемые маркеры отображались не на всех уровнях масштабирования карты, а только на определенных (начиная с определённого уровня приближения и ближе) . При этом, они не отображались на самом верхнем уровне (на уровне мира, например).

    Также прошу уважаемых Донов подсказать, за что отвечают свойства  Appearance и Origin в описателе маркеров (тип  TMapMarkerDescriptor)  - в хелпе это не описано, или описано плохо.

    Подозреваю, что эти свойства могут помочь с моей задачей.

    Спасибо!

  17. В ‎26‎.‎03‎.‎2018 в 13:58, zekelive сказал:

    Проблема решилась добавление ApiKey. В первый раз добавил не тот ApiKey. Спасибо всем за помощь.

    Добрый вечер!

    у меня такая же проблема - создал API key, но программа вылетает.... есть ощущение, что создал какой-то не тот (как у вас поначалу). хелп, который описывает что надо создавать, - читал. так и пытаюсь делать, но только по умолчанию у меня не спрашивается ни application key, ни package name - это можно потом ввести в restrictions (может интерфейс изменился у этой консоли с момента написания этого хелпа)……

    подскажите, где нужно создавать этот правильный ключ?

  18. Ребята, есть проблемы.

    1) наши углы - не верные. особенно третий угол- он вообще непонятно что представляет.

    понимаю, что все что мы делаем - это вызываем стандартные методы (и они вызываются и работают) - но факт остается фактом.

    2) проблема, которую описал я  после первой компиляции программы- это не проблема ориентации экрана телефона! это другая проблема. моя проблема это то - что при одной и той же портретной ориентации телефона азимут на север изменится на 180% при подьеме телефона на 90 градусов (из горизонтальной плоскости в вертикальную - с той же ориентацией телефона).

     

    Для того, чтобы это было понятней - привожу две программы - первая это апк файл из первой статьи этого автора с хабра (где используется устаревший метод) - файл androidsensors.zip

    вторая программа - это наш проект в "доповоротоном" виде (в первоначальном виде) - файл sensman.zip

    третья программа - это наша программа с фиксом по ориантации экрана - sensman_fix.zip

    AndroidSensors.zip

    SensMan.zip

    SensMan_fix.zip

  19. вот только такой момент - когда я телефон наклонял из горизонтальной плоскости в вертикальную - разве я менял его ориентацию - портрет или ландскейп? я же его не так крутил (крутил не в плоскости телефона)

  20. 4 минуты назад, mazayhin сказал:

    Немного не то имел ввиду.

    GetScreenOrientation не даст никаких углов, он укажет, грубо говоря, куда направлен верх телефона (где камера). Portrait = 0градусов, вверх.

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

    Если оси не изменились, смысла в лишней работе телефона нет, ровно как и в создании OutMatrix (его надо обязательно создать и задать размер).

    Как поступить - решать вам. Или считать дополнительно каждый раз, или только по необходимости.

    я все так и понял )

    еще вопрос - хелп пишет, что состояния InvertedPortrait и InvertedLandscape - under IOS. 

    типа что под андроидом будет только Portrait и Landscape

    вы пробовали под андроидом с ними работать - они будут "срабатывать"?

    (это у нас 180 и 270)

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