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

mazayhin

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

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

  • Посещение

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

    19

Весь контент mazayhin

  1. Лезет туда, ну и хай с ним. Работе это не мешает никак
  2. Ну дак это и подтверждать не надо, все и так это делают регулярно
  3. Для этого надо использовать сторонний лаунчер, реализующий т.н. kioskmode. Кнопку back можно переопределить, а вот остальные система не даст. Взможно, можно с помощью AccesibilityManager, точно не скажу
  4. Ну правильно, если студия хочет при запуске открыть на чтение, то не запустится. Если не пересобирать (build) то все запустится. Библиотеки самого приложения и сервисов, если есть, перезапишутся точно. Иначе тогда не получалось бы делать обновление. На счет подключенных, сейчас не скажу, у нас в проектах используются сторонние so, надо будет посмотреть. Если в настройках сделать сброс, то развернутые из ассетов фалы удалятся, и при следующем запуске приложения, развернутся вновь. Так же потрет все, что приложение разместило по пути TPath.GetDocumentsPath. Если сделать сброс, то удалятся как раз те 2,07 мб, которые записал мне убер
  5. Посмотрите здесь описпние и возможные прототипы функции. http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Net.HttpClient.THTTPClient.BeginPost
  6. На устройство попадает все, что указано в deployment. Но, при развертывании новой версии приложения, без разницы, через adb или маркет, эти файли не перезаписываются, только разворачиваются новые. Что вполне логично и являеися нормальным поведением системы. Винда даст запустить сколько угодно копий приложения, если это руками не ограничить. Из студии тоже получится, если не пересобирать заново. Если нужно обновить имеющиеся ресурсы, смотрите в сторону System. StartupCopy, он за это отвечает, ну или используйте AssetManager. Так же приложение можно не удалять полностью, а в настройках "стереть данные" перед запуском Но для работы с БД, лучше сразу продумать логику ее обновления в коде. Если данные в базе не важны для пользователя, то возможно, лучшим вариантом будет создавать БД программно. Если данные нужны, проверять версию БД и в коде ее обновлять. Откуда брать обновление-вам решать, или с сервера, или из ресурсов, или из assets выдергивать.
  7. Если сервис называется MainSvc, то вызов д.б. TAndroidHelper.StringToJString('com.embarcadero.services.MainSvc') Ну и в настройках проекта соответственно
  8. Только лучше использовать THTTPClient
  9. Ну и правильно, удалить то удалили, а зависимости не разрешили. Из исходника в свой юнит или куда еще, надо перенести именно те методы, дергающие api, которые нужны для решения задачи. Завтра конкретнее посмотрю
  10. По HTTP почитайте http://docwiki.embarcadero.com/RADStudio/Berlin/en/Using_an_HTTP_Client Так же вроде есть примеры в поставке студии По Firebase так же есть документация от Google, вам надо смотреть все что имеет отношение к Rest а не Android (https://firebase.google.com/docs/reference/rest/database/) Ну и собственно https://firebase.google.com/
  11. Попробуйте сделать Adapter.ResetView, может поможет
  12. mazayhin

    пароль на бд

    Да, и личное мнение, тот же SQLiteExpert удобнее, если брать из свободных
  13. mazayhin

    пароль на бд

    Официальная цитата Embarcadero: Смотрите http://docwiki.embarcadero.com/RADStudio/XE5/en/Using_SQLite_with_FireDAC Создавайте БД без шифрования, а затем, в приложении ее шифруйте штатными инструментами FDSQLiteSecutiry http://docwiki.embarcadero.com/Libraries/Tokyo/en/FireDAC.Phys.SQLite.TFDSQLiteSecurity Перед выгрузкой, если необходимо для тестирования и проверки данных, снимайте шифрование и выгружайте. Тогда сможете открыть любым внешним средством. Да, и это не баг-фича студии, это официальное поведение
  14. Мы писали на java библиотеку, реализующую работу с сенсором и кейсторам, подключали с помощью паскалевской обертки. Ели будет интерес, то как дойдут руки, до ума доведем и выложим.
  15. Дак мы про ddos тут вроде и не говорили. Эта атака подразумевает отказ в обслуживании по каким то причинам. А не получение доступа к данным. Да, SSH много где открыт, и у нашей компании в том числе, да, и на стандартном порту. Просто доступ по ключам, да fail2ban работает. Это из другого русла, вообще. Может все же я, да и мои коллеги, чего то не понимаем, а может это просто уже почти суббота, да или последствия морозов (думаю, OnePeople меня поймет), но все же. Да и детей за границей еще не запретили называть Ваня Брось Таблицу
  16. Это да, похвально, что никто не ломился. Дак смысл в том и есть, что делая 2 звено, сервер приложений, тобишь, мы сами решаем, куда давать доступ, зачем и к кому. Одновременно стараясь свести к минимуму риски порч наших систем, будь то ос, бд или логика системы. Помимо этого, 2 звено позволяет исправить ошибки, допущенные при проектировании, либо внести изменения в логику работы системы. Либо, если интерфейс строим динамически, обновлять на лету клиентов. А так да, с первого взгляда, конечно, легче сразу в базу лезть, "все сайты в интернете так работают", а на деле то нет.. А про http и http+api так и не понял. Обычно, http просто является транспортом для общения клиента и СП, ну и избавляет от создания доп. логики. Не охото заморачиваться с транспортом, то http/s, websoket, хотите-да хоть на голых сокетах, с msdn или man в охапку!
  17. В чем именно? Ну... Так у нас тоже локалка, между 4 регионами РФ. Не физическая конечно, а виртуальная... Ну про потерю можно много рассуждать. Для кого то и "пидемия" Пети была смехом, котиков навалом, да и контактик надежный. Не скажу про все другие SQLи, но для MS и Oracle достаточно пары часов посветиться в мир, что бы начали пароль подбирать. Ну а дальше... а что дальше: задания агента + xp_cmdshell, или на худой конец волшебство sp_procoptions твооит свое. Ну а пароль к субд хранить на клиенте, даже локальном, тоже ДА. Бэст практис особенно, если клиент это "SELECT * FROM Tablitsa_1 INNER JOIN Tablitsa_20 ON Tablitsa_1.id = Tablitsa_20. id WHERE Tablitsa_1. id > 100500 AND knopka_najmi LIKE '%меня%' " Да. И главное не забыть, сам запрос собирать в [..]Query1_zaprosVajniy. SQL.Text
  18. Однозначно трехзвенка, особенно с мобильными клиентами. Прямое подключение = стабильная связь, что не получится на мобильных сетях, и плюсом безопасность (попробуйте порт БД выставить во вне, и загляните через час-другой в логи доступа), а получив привелигированный доступ к субд, считай, систему потеряли. У нас в холдинге КИС самописаная, 3-звенка, так же. Клиенты- web, мобильные на FMX и десктоп. СУБД - MS SQL, основная логика на хранимых процедурах. В промежутке как раз http сервер, писали на Delphi. Используем mORMot framework. Нагрузки держит отлично, ресурсы и память не ест практически. Скорость работы тоже на высоте - за http отвечает драйвер режива ядра http. sys Для других проектов так же используем webbroker isapi
  19. Интересный Вы человек! Таблицы бывают разные да и инднксы, впрочем, тоже разные бывают. Напишите что конкретнее надо, а лучше для чего (т.е. что будет в таблицах), тогда скину скрипт, а так только могу написать CREATE INDEX index_name ON table_name (column_name) ; Ну и посоветовать http://www.sqlite.org/lang.html В общем, хотите базу, пишите
  20. Конечно не знаю как у вас, но у меня (сейчас проверил) на Android закрывается прекрасно при потере фокуса..
  21. Если это ComboBox, то при потере фокуса он закроется, а так же есть процедура DropDown, открывающее/закрывающие список, и свойство DroppedDown содержащее состояние
  22. Здесь или версия устанавливаемого меньше версии установленного, либо подписано разными сертификатами (переустановка студии, запуск с другого компьютера, Debug/Release)
  23. Ну если и вправду лень искать или делать самому то, что элементарно, воспользуйтесь готовым IXMLDocument и конвертируйте хоть html -> text, хоть наоборот
  24. К тому же он нативный для каждой платформы
  25. Вы уверены что загружаете файл по правильному пути? Он точно там существует? При отсутствии файла, будет выдаваться значение по-умолчанию. В какой он кодировке? Если кодировка не UTF-8, попробуйте указать в конструкторе верную (ту, в которой на самом деле файл). Проверьте банально (на С++ перепишите): if TFile.Exists(TPath.Combine(TPath.GetDocumentsPath,'inifile.ini')) then showmessage('file found') else showmessage('file not found'); Были ли значения в файле, когда у вас первый раз получилось его задеплоить? При обновлении приложения, если файл есть на устройстве, он не обновляется сам, надо или очистить в настройках, или сделать это все руками. Проверьте что вообще в нем записано, да тем же TFile.ReadAllText('путь к файлу', 'кодировка'). Ну и если его "там" не будет, то как раз словите исключение... P.S.: специально сейчас проверил, с русскими ключами проблемы нет, все читается. С кодировкой тоже, читает и ANSI и UTF-8 и Win-1251, в конструкторе даже не указывал кодировку.
×
×
  • Создать...