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

Barbanel

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

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

  • Посещение

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

    36

Barbanel стал победителем дня 15 августа 2020

Barbanel имел наиболее популярный контент!

Информация о Barbanel

  • День рождения 18.12.1980

Информация

  • Пол
    Мужчина
  • Город
    Bornheim
  • Интересы
    IT, 3D Graphics programming, 3D modellind

Посетители профиля

9 455 просмотров профиля
  1. Всем доброго дня! Заранее прошу прощения что размещаю подобное объявление здесь, пытаюсь использовать все возможные варианты. Ищем опытного программиста/дизайнера интерфейсов на удаленную работу, возможно на долгосрочную перспективу. Требуется поправить существующий или разработать новый UI/UX веб-приложения для школьного классного журнала. Речь идет не столько о внешнем виде, сколько о грамотном и сбалансированном интерфейсе, предоставляющем удобный доступ ко всем функциям. UI необходимо адаптировать под три категории устройств: настольные ПК, планшеты, мобильные телефоны. Буду рад как ссылкам на примеры работ, так и прямому общению. Подробнее в личке.
  2. Поддержу. Тоже разрабатываем кроссплатформенное приложение. Пока все более-менее норм.
  3. Разобрался. function HPEDetect(ABitmap: TBitmap): INT; var lBitmap : jBitmap; libBitmap : JNIObject; begin result := 0; if ( HPELibraryHandle = 0 ) then exit; lBitmap := BitmapToJBitmap(ABitmap); libBitmap := (lBitmap as ILocalObject).GetObjectID; <- ключевой момент здесь result := jniExtractGazes(PEnv, nil, libBitmap); gGazeVect := jniGetGaze(); end; Главная моя ошибка была в том, что я передавал в библиотеку сам JBitmap. Вместо него нужно было передавать JNIObject.
  4. Верно, был такой параметр. Я сознательно вырезал его из кода библиотеки и пересобрал библиотеку без этого списка, чтобы локализовать проблему. Исключение в библиотеке происходит при первой же попытке поработать с объектом bitmap. Другими словами, отсутствие gazesList не является причиной исключения, в этом я на 146% уверен ?
  5. Всем здравствуйте, и мое почтение! Возникла сильная необходимость передать объект JImage в so-библиотеку, написанную на c++ Суть - нужно передать изображение в библиотеку распознавания лиц и ориентации головы. В библиотеке есть функция, объявленная так: jint JNIEXPORT JNICALL DLIB_JNI_METHOD(jniBitmapExtractFaceGazes)(JNIEnv* env, jobject thiz, jobject bitmap) {...} В Delphi я описал эту функцию следующим образом: var jniExtractGazes : function(PVM: PJNIEnv; Reserved: Pointer; bitmap: JObject): INT; cdecl; Гружу/ищу ее так: function HPELoadLibrary: boolean; var lJNIInt : JNIInt; begin Result := False; HPEMode := MODE_ITERATIVE; {$IFDEF ANDROID} HPEDocDir := IncludeTrailingPathDelimiter(System.IOUtils.TPath.GetDocumentsPath); {$ELSE} exit; {$ENDIF} HPELibraryHandle := LoadLibrary(PChar(HPEDocDir + 'libhead_pose_det.so')); if ( HPELibraryHandle = 0 ) then Exit; PEnv := TJNIResolver.GetJNIEnv; PVM := PJavaVM(System.JavaMachine); if HPELibraryHandle <> 0 then begin @OnLoadFunc := GetProcAddress(HPELibraryHandle, 'JNI_OnLoad'); if not Assigned(OnLoadFunc) then begin FreeLibrary(HPELibraryHandle); Exit; end; lJNIInt := OnLoadFunc(PVM, nil); @jniInit := GetProcAddress(HPELibraryHandle, 'Java_com_beraldo_hpe_dlib_HeadPoseDetector_jniInit'); //jniInit @jniDeInit := GetProcAddress(HPELibraryHandle, 'Java_com_beraldo_hpe_dlib_HeadPoseDetector_jniDeInit'); //jniDeInit @jniExtractGazes := GetProcAddress(HPELibraryHandle, 'Java_com_beraldo_hpe_dlib_HeadPoseDetector_jniBitmapExtractFaceGazes'); Result := True; end; end; Адреса всех функций находятся, jniInit и OnLoadFunc отрабатывают корректно. Проблема с функцией jniExtractGazes. function HPEDetect(ABitmap: TBitmap): INT; var lBitmap : jBitmap; begin result := 0; if ( HPELibraryHandle = 0 ) then exit; lBitmap := BitmapToJBitmap(ABitmap); result := jniExtractGazes(PEnv, nil, lBitmap); <===== Project FaceLockClientMobile.apk raised exception class Aborted (6). end; На указанной строке всегда вылетает Exception Aborted. Стек ничего внятного не показывает. Путем долгих проб и ошибок прихожу к подозрению что я неправильно передаю Java-объект в библиотеку. Как его передавать из Дельфи правильно - не могу найти. Буду очень признателен за любые подсказки и догадки. PS речь идет о этой библиотеке: https://github.com/beraldofilippo/android-hpe-library
  6. Не соглашусь. Не обязательно третий мир, скорее как источник опытных кадров. У нас очень похожая ситуация: находимся в Германии, ищем Delphi разработчика, желательно с опытом fmx. Компания небольшая, поэтому гугловских зарплат не предлагаем. Из моего опыта, предлагаемая ЗП соответствует уровню миддл-разработчика. Важно понимать, что речь идет о начальной ЗП, которая пересматривается со временем. Людей просто нет. Не то чтобы им ЗП мала, их (людей) нет. Присылают резюме всякие индусы да турки-арабы-хзкто, это не тот контингенс с которыми мы готовы работать. В итоге плюнули, и везем людей из экс-ссср. На собеседовании тупых вопросов про люки не задавали. Выделили месяц-два для работы в удаленном режиме, чтобы посмотреть как человек справляется, какие вопросы задает, насколько вообще активен. После этого принимаем решение о релокации. PS, друг работает в Голландии, разрабатывают ПО для аэропортов. Его компания за пять лет привезла более тридцати русскоговорящих разработчиков. Имхо, это говорит о многом.
  7. Воу-воу, палехше, на личности не надо переходить. Для этого есть личка.
  8. Ну не из пальца же я его высосал... Очевидно что как минимум он влияет на опции проекта.
  9. Разобрался, возможно проблема проявлялась только у меня. У меня установлен JCL и JVCL. Нужно было в меню Project -> JCL Debug Expert -> Generate .jdbg files выставить Enabled for this project (либо Always enabled) У меня было выставлено Always disabled, отладка не работала. В случае первых двух - отладка под Android64 работает.
  10. Спасибо за ссылку, пробежался бегло - выглядит интересно (несмотря на то, что некоторые вещи уже известны и понятны, о!))) А что думает Ярослав по поводу этой книги?
  11. Добрый день коллеги! Проблема с версией 10.3.3 Возникла необходимость (внезапно, вот неожиданность!))) обновить приложение. Приложение работало в 32битной версии, при компиляции же в 64бита по непонятным причинам не может получить доступ к локальной БД. При попытке отладки приложения брекпоинты не срабатывают, в консоли видна запись: "no debug info". Порывшись в гугле обнаружил ссылку на патч (https://community.idera.com/developer-tools/b/blog/posts/delphi-10-3-3-android-debugging-patch), скачал/установил, но проблема так и не не решилась. Вопрос 1: у кого-нибудь работает отладка под х64? Вопрос 2: может есть размышления по этому поводу? Буду рад любым советам!
  12. <оффтоп> Я конечно дико извиняюсь, но это же просто АГОНЬ!!! решение! Большое спасибо, я лично не знал о таком способе! </оффтоп>
  13. Ну здаров, сталкер! Это нормально для мобильных платформ. Чтобы это обойти придется кидать на Form1 прямоугольник (TRectangle емнип) и присваивать ему полупрозрачную заливку. Соост в центр твоего ректангла кидаешь еще одну непрозрачную панель и уже на ней размещаешь свои контролы. 100%-го аналога ShowModal не получишь, придется логику чуть-чуть поправить. Скорее всего это масштабирование для конкретно твоего устройства, усугубленное тем что ты не используешь Align или Anchors. Используй их и будет тебе счастье. Можно еще почитать про масштабирование чтобы лучше понимать что конкретно происходит. Не сталкивался с таким, не могу сказать. Возможно баг самой FMX, возможно баг в файле стиля (даже не баг, а внутренняя область гроупбокса неправильно описана). Я бы начал проверку со стиля. Есть костыльное решение - установи Margins.Top побольше))))))
  14. Barbanel

    Unable to create process

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