Jump to content

Stas

Active subscription
  • Content Count

    117
  • Joined

  • Last visited

  • Days Won

    9

Stas last won the day on February 20

Stas had the most liked content!

Community Reputation

64 Excellent

About Stas

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Коллекция пополнилась Вашим . Я думаю, у все разные диалоги.
  2. А что такое, диалог по умолчанию? Я про него ничего не знаю, видел разные
  3. Этот classes.dex должен быть в deploy
  4. Сделал очень ректально. Но уже работает и не падает (я надеюсь) Хотел бы комментарии Ярослава. (Касательно таймеров) Спасибо BarcodeDetector.rar
  5. Уважаемые друзья, прежде всего хочу попросить у вас прощения, что не успел привести это в божеский вид, потому даю только наметки. Возможно у кого-то возникнут более разумные идеи , чтобы это работало как следует. Итак начинаем Прежде всего нам понадобится 1) Кнопка для начала сканирования 2)Мемо для отображения результатов 3) TfgVideoControl для показа действий с камерой. 4) Два маленьких литра коньяка Мы создаем имплементацию интерфейса type TDetector_Processor = class(TfgAndroidListener<TfgAndroidControl>,JDetector_Processor) public procedure receiveDetections(const AArg0: TJDetector_Detections); procedure release; end; procedure TDetector_Processor.receiveDetections( const AArg0: TJDetector_Detections); var J:TJSparseArray; B:TJBarcode; D:TDetector_Processor; begin J:=AArg0.getDetectedItems; if (J.size<>0) then begin D:=Self; B:=TJBarcode.Wrap(J.valueAt(0)); TThread.Synchronize(nil,procedure begin FormMain.fgMemo1.Lines.Text:=JStringToString(B.displayValue); end); end; end; procedure TDetector_Processor.release; begin ; end; Собственно говоря, он отвечает за распознавание штрих-кода. Далее при создании формы, нам необходимо создать этот объект processor:=TDetector_Processor.Create(TfgAndroidControl(TfgAndroidControlHandle(fgMemo1.Handle).NativeControl)); //Я не знаю, почему я так сделал На кнопку мы вешаем следующий код //Мы просим разрешения сканировать, и при получении оного пытаемся это делать. TfgPermissionService.RequestPermissionsAsync(['android.permission.CAMERA', 'android.permission.WRITE_EXTERNAL_STORAGE'], procedure(const APermissionInfo: TArray<TfgPermissionInfo>) begin case APermissionInfo[0].CheckResult of TPermissionCheckResult.Granted: begin DoScan; end else TfgToast.Show('Camera permission is not granted. Cannot scan barcode.', TfgToastDuration.Long); end; end); Теперь собственно, сама процедура procedure TFormMain.doScan; begin detector:=TJBarcodeDetector_Builder.Create(TfgAndroidHelper.Context).setBarcodeFormats(TJBarcode.ALL_FORMATS).build(); detector.setProcessor(processor); cameraSource:=TJCameraSource_Builder.Create(TfgAndroidHelper.Context,detector). setRequestedPreviewSize(1920, 1080).setAutoFocusEnabled(true).build(); cameraSource.start( TfgAndroidVideoControl(TfgAndroidControlHandle(fgVideoControl1.Handle).NativeControl).VideoView.getHolder()); end; Конечно про используемые модули. uses ...,Java.Bridge,FGX.Animation, FGX.Dialogs, FGX.Log,FGX.Helpers.Android,FGX.Image.Android,FGX.VideoControl.Android,Android.Api.ActivityAndView,FGX.Permissions,FGX.Toasts, И в interface Android.Api.PlayServices.Vision Благодарю за внимание, и прошу прощения, что так сумбурно.
  6. Пытаюсь привести в божеский вид Штрих-код киевской примы без фильтра я уже получил, осталось добиться нормальной остановки камеры Падаем-с. З.ы используется Google vision api
  7. Ну, что могу сказать, получилось. Библиотека Ярослава к этому готова Если это необходимо, постараюсь сегодня выложить пример.
  8. Ярослав, спасибо за развернутый ответ, я должен понимать принципы построения библиотеки. Конечно не имеет смысл добавлять общий метод.
  9. Виктор, это для чистоты и изящества кода, Вы же все равно используете TfgAndroidListener, что мешает, передавать в конструктор тип объекта, и вызывать один и тот же метод TfgMap З.Ы. Повторюсь, я не в претензии.
  10. Я знаю, Виктор, Но в GoogleMaps отсутствует и общий объект, наследниками которого являются полигоны полилинии и иже с ними в Fgx, просто это несколько странно, делать столько событий, когда можно обойтись одним. (бритва Оккама) Я не в претензии, мысли вслух.
  11. Это правильно и разумно, спасибо, в идеале хотелось бы автогенерации как в FMX, но настаивать на этом глупо, не все от вас зависит.
  12. OnTap<TfgMapObject> Де факто их можно было объединить в одно.
  13. Ярослав, а почему появилось столько событий, которые можно было не постулировать в таком количестве?
  14. Здравствуйте, проблема в том, что в распространяемый classes.dex Не вошли эти jar файлы посмотрите файл build.bat и поправьте путь к classes.dex fgx , У вас получится слитый classes.dex , который вы должны распространить вместо оригинального от fgx У меня это получилось только при помощи временной замены оригинального classes.dex fgx своим Ярослав обещал это исправить Да, и не забудьте про разрешения
  15. Виктор, он это не сможет скачать
×
×
  • Create New...