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

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      4

    • Постов

      2 517


  2. Kitty

    Kitty

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


    • Баллы

      4

    • Постов

      792


  3. alxsev

    alxsev

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


    • Баллы

      4

    • Постов

      32


  4. dnekrasov

    dnekrasov

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


    • Баллы

      1

    • Постов

      317


Популярный контент

Показан контент с высокой репутацией 04.06.2016 во всех областях

  1. Мой опыт создания приложения для андроида в С++ Builder Берлин. Приложение предназначено для контроля прихода-ухода персонала на работу. Знакомый руководитель стоматологического центра попросил. Использовался этот маячок beacon: Bytereal-iBeacon Обязанности сотрудника при приходе и уходе с работы: - сотрудник запускаем мобильное приложение - далее подносит телефон к маячку Мобильное приложение фиксирует отметку в базу данных SQL lite. Уведомляет пользователя в интерфейсе программы и дополнительным push уведомлением. Отметки можно посмотреть на самом телефоне или выслать руководителю по почте. Телефон превращается во что-то вроде магнитной карты учета прихода-ухода с хранением данных. Интерфейс на прилагаемом рисунке. Что положительного: - Задача решена быстро на с++ и не надо тратить время на изучение чего-то другого. Для корпоративного решения то, что нужно. - Студия упала во время разработки только два раза. В С++ Builder XE6-7 при наличии достаточного кол-ва кода в проекте для андроида студия падала каждые две минуты. - Учитывая стоимость маячков это перспективная линия для всякого рода приложений связанных с биконами. Положительный опыт. Что отрицательного: - При попытке активировать TFDQuery в инспекторе объектов, возникает ошибка LiveBindings и уже нельзя сохранить проект. Только закрытие без сохранения и повторное открытие студии. - Не удалось показать картинку на вкладке История. В дизайнере она есть, на устройстве странным образом исчезает. Не победила. - Попытка удалить StyleBook и затем настроить новый, привела к тому, что в дизайнере все отлично, а на устройстве стилизация полностью исчезает. Не победила. Спасла резервная копия приложения. - Были мысли расширить приложение, но в текущей версии C++ Builder невозможно создавать сервисы для андроида. Наличие сервиса позволило бы дополнительный не гласный контроль. Например, если человек отлучился уже в течение рабочего дня. Судя по дорожной карте и в следующей версии С++ Builder 10.2 в пролете создания сервисов для андроида. Выводы: Больше всего времени я тратила не на программирование, а на пункты из отрицательного. Пытаясь понять, что происходит, но безуспешно. Поскольку задача все же решена то, в общем, все хорошо, но без полного ощущения счастья. Просьба: Может что-то посоветуете еще по функционалу или интерфейсу для приложения такого типа? Может, есть что-то полезное, что можно добавить в такой тип мобильного приложения? Спасибо.
    4 балла
  2. Автор: Северюхин Алексей Ссылка на Youtube: ссылка Youtube Ссылка на приложение: Android market Игра для развития внимания, ловкости, реакции и умения различать цвета В этой игре необходимо на скорость нажимать одну из четырех кнопок, определенного цвета, в зависимости от загоревшейся лампочки на игровом поле. При правильном нажатии вы зарабатываете очки. При наборе 8 или 16 или 32 очков, загорается лампочка с индикацией заработанных очков. С одной попытки вам нужно набрать 32 очка. При неверном нажатии игра заканчивается.
    4 балла
  3. эмм, snapdragon это не интел так что все будет нормально
    2 балла
  4. как по мне интерфейс немного не удобный. информации слишком мало чтобы её предоставлять в табличном режиме. Можно было бы сделать что-то типа карточек или каких нить панелек с картинками-статусами. Не хватает живости приложению. На счёт минусов: не используйте Табы, просто TLayout переключайте по кнопкам (TTabControl ужасно прожорлив)
    1 балл
  5. Тут всё зависит от устройства. Обычно к таким устройствам идет в комплекте SDK, и напрямую по TCP/IP с ними никто не работает. Чаще всего это набор функций в DLL, иногда набор ActiveX-контролов, один раз видел как устройство определяется как сетевой диск и работа с его памятью идет как обычная работа с файлами. Но, если Вы все-таки хотите с ним работать напрямую - то у Вас, как минимум, должно быть описание протокола обмена данными с этим устройством - а там уже решать что использовать. Если устройство поддерживает HTTP протокол - то использовать какой-либо HTTP клиент (TIdHTTPClient, TNetHTTPClient и т.п.), если нет - что-то типа TIdTCPClient.
    1 балл
  6. Все правильно получаете, кодировка тут не при чем. Согласно спецификации "DNS Packet Structure", вы получаете не строку, а пакет который нужно разобрать. К примеру если запрос будет "nslookup www.google.ru 127.0.0.1", то там где вы получаете имя хоста будет строка "''#3'www'#6'google'#2'ru'#0#0#1#0#1". Парсинг простейший: #3 - означает что далее идут 3 символа хоста 'www' - вот ожидаемые 3 символа #6 - далее идут еще 6 символов хоста 'google' - ага, вот они #2 - ну и еще 2 символа 'ru' - ура, они здесь #0 - конец имени хоста, складываем в кучу, перемежая точками и получаем www.google.ru #0 - дальше у нас служебная информация... #1 #0 #1 Вот как то так. P.S. А зачем вам на таком низком уровне работать? Может использовать IdDNSServer : TIdDNSServer ? P.P.S. Правильно Memo1.Lines.Add(BytesToString(AData,12)); //(12, а не 13)
    1 балл
  7. Я нашел решение, к сожалению, пока только для работы с UniDAC: Обновил UniDAC компоненты для Berlin до последней версии (6.3.12). Компоненты TUniConnection и TUniQuery отлично работают с SQLite в Android Service. FireDAC в Android Service пока запустить не удалось, но у меня такой задачи нет. В Deployment host приложения добавляю файл базы данных, Remote Path задаю ".\assets\internal\". И спокойно из сервиса получаю к нему доступ. Мой сервис локальный в одном потоке с приложением. Если делать Intent Service или Remote — наверное, придется помещать файл в другой, доступный каталог, или общаться через намерения (Intents). Надеюсь мой код будет полезен для вас. procedure TDM.conSQLiteBeforeConnect(Sender: TObject); begin {$IF DEFINED(iOS) or DEFINED(ANDROID)} conSQLite.Database := TPath.Combine(TPath.GetDocumentsPath, 'mybase.sqlite'); {$ENDIF} end; procedure TDM.conSQLiteError(Sender: TObject; E: EDAError; var Fail: Boolean); begin Log('--- DB error: %s:', [E.Message]); Fail := False; end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin Log('+ START with Intent: ' + JStringToString(Intent.getAction.toString), []); if Intent.getAction.equalsIgnoreCase(StringToJString('StopIntent')) then begin try conSQLite.Disconnect; Log('- DB disconnected', []); except on E: Exception do Log('- can not to disconnect DB', [E.Message]); end; Log('... service to be stoped', []); JavaService.stopSelf; Result := TJService.JavaClass.START_NOT_STICKY; // don't reload service end else begin Log('... service started', []); try conSQLite.Connect; Log('+ DB connected', []); UniQuery.SQL.Text := 'select count(*) as ALLREC from orders'; UniQuery.Open; if UniQuery.RecordCount > 0 then begin UniQuery.First; Log('... record count: %s', [UniQuery.FieldByName('ALLREC').AsString]); end; UniQuery.Close; except on E: Exception do Log('- can not to connect DB: %s', [E.Message]); end; Result := TJService.JavaClass.START_STICKY; // rerun service if it stops end; end;
    1 балл
  8. noisy

    Вопрос кодировки

    Вы меня извините, что я не по теме... но ... Перестаньте работать с мобильной платформой как с десктопом. Не нужно работать с базой напрямую, делайте промежуточное звено и общайтесь с базой через него (API). Да это сложнее, но так правильней.
    1 балл
  9. не поддерживается на интелах (официально), но можно
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...