Перейти к содержанию
  • Регистрация

Лидеры


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

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

  1. 5 баллов
    Хочу поделиться с вами знаковой новостью для развития библиотеки FGX Native. Официально выпущено первое Андроид приложение в Google Play Market. Это приложение разработано Станиславом(@sinuke) для учащихся лицея по специальности "Почтовая связь". Оно одновременно является и полным конспектом, который всегда под рукой, и системой проверки своих знаний. Полностью разработано на Delphi и стандартных компонентах альфа версии FGX Native 0.9.7.0 в Delphi 10.3 Community Edition. Быстрые списки, гибкая разметка, продвинутая навигация, анимации переходов, поддержка тем и многое другое. Это лишь малая часть того, что было задействовано из текущих возможностей библиотеки. Приложение опубликовано в Google Play Market. Вы можете уже прямо сейчас скачать и протестировать приложение самостоятельно, загрузив его по ссылке (https://play.google.com/store/apps/details?id=com.sinukeapps.post). Оставляйте свои комментарии и предложения. Они помогут сделать приложение лучше, а FGX Native еще удобнее и стабильнее. Релиз первого приложения с использование библиотеки FGX Native - это результат огромной работы, проделанной за эти годы. В тоже время, это сигнал того, что библиотека обладает достаточным минимумом для создания типовых Андроид приложений. Ну, и пожалуй самое приятное, это то, что библиотека готова к бета тестированию, которое откроется в ближайшее время. О начале закрытого бета тестирования будет сообщено позже. Отдельное спасибо участникам закрытого альфа тестирования за поддержку, тестирование и идеи по улучшению библиотеки. В настоящее время участниками тестирования ведутся и другие интересные проекты на базе FGX Native, о которых я расскажу позже. Следите за новостями. Приложение: https://play.google.com/store/apps/details?id=com.sinukeapps.post Автор: Станислав Игнатович @sinuke Минимальные системные требования: Android 5.0 и arm v7
  2. 4 балла
    Все невизуальные компоненты, которые не используют код FMX прекрасно работают.
  3. 3 балла
    krapotkin

    Разбор JSON с мультизапросом

    вы просто без разделителей склеиваете три разных JSON-массива вам бы каждый из них описать отдельно. да и вообще принято логически законченные участки кода выделять в отдельные функции function GetValuesAsJson($query) { ..... } тогда будет например '{"Arr1":'. GetValuesAsJson($query1). ', "Arr2":'.GetValuesAsJson($query2).', "Arr3":'.GetValuesAsJson($query3).'}' ну и разбор полученного объекта например с помощью XSuperObject. Примеры есть на офсайте https://github.com/onryldz/x-superobject
  4. 3 балла
    Можно использовать rtl со всеми компонентами, которые там есть. Плюс есть возможность использовать AndroidAPI, если очень нужно. Это пока не реализовано. Но подобные сервисы будут реализованы по мере необходимости и запросов. Это есть и есть кроссплатформенная реализация. В самом FMX , кстати, ее нету. Можно будет настраивать статус бар в приложении. Положение формы относительно статус бара и простейшие операции по подкраске. Службы еще не тестировались, но в первой версии можно будет использовать построение сервисов, на базе тех, что есть в rtl. Перехваты и прочее - это уже особенности системы Андроид. В теории такое возможно, если делать приложение с несколькими Activity. Но на практике не думаю ,что это будет удобно с учетом того, как это можно сделать.
  5. 3 балла
    Демо проект с быстрым списком (его подготовил Андрей Зубов) FastSimpleList.apk
  6. 3 балла
    dnekrasov

    TImageList  в  TImage

    Хм... Я смотрю Help совсем популярностью у Вас не пользуется... TImageList.Bitmap(...) TImageList.BitmapExists(...) TImageList.BitmapItemByName(...)
  7. 3 балла
    вывод информации - браузер списки - TfgCollectionView - компонент в библиотеке для вывода списков любой сложности. В итемы можно добавлять любые контролы в отличии от ListView в FMX, при этом скорость гораздо выше, чем у ListBox тесты - TfgScrollBox + TfgLabel + TfgRadioButton (TfgCheckBox) + TfgButton + TfgSpacer (заполнитель для того, чтобы кнопка "Ответить" была всегда внизу)
  8. 3 балла
    Procedure TServerConnectionTH.RecieveData(); // сюда приходя данные со сканера //Data - это данные в виже TBytes //str - строка со считанным штрихкодом var Intent: JIntent; str:String; begin str:=TEncoding.UTF8.GetString(Data); Form1.DisplayR.Lines.Add(Str); Form1.DisplayR.GoToTextEnd; Intent := TJIntent.Create; Intent.setAction(StringToJString('com.google.android.c2dm.intent.RECEIVE')); Intent.putExtra(StringToJString('text'),StringToJString('1')); Intent.putExtra(StringToJString('title'),StringToJString('1C')); Intent.putExtra(StringToJString('data'),StringToJString(str)); TAndroidHelper.Context.sendBroadcast(Intent); end;
  9. 3 балла
    OnePeople

    рисование на Image1

    По быстрому) Paint.rar
  10. 2 балла
    Не сталкивался. Решение в лоб: забекапь .dproj и .deployproj и удали их, это обнулит настройки проекта. После этого зайди в настройки проекта и настрой все заново.
  11. 2 балла
    Пишем в данный момент на 10.3.1, в т.ч. под iOS. Перед этим писали на всех версиях начиная с Берлина. Live bindings не используем, т.к. наслышаны про его странное поведение. Да, больше писанины, но и уверенности что все работает именно так как нужно - тоже больше. Да, вы можете отказаться от "сырой" студии, без проблем, никто не запрещает. Но есть шанс что вы путаете теплое с мягким - студию в целом с одним глючным решением.
  12. 2 балла
    если нужно чтобы проекты были в гите и секьюрно, то можно воспользоваться решением от atlassian. купить продукт Server, развернуть на любом сервере. стартер пак - 10$ на 10 человек
  13. 2 балла
    Tumaso

    GIT - как с ним наиболее просто работать

    @Barbanel вот неплохое описание, как в Git делать Pull Request в существующем проекте
  14. 2 балла
    mazayhin

    Пути к ресурсам андройд

    Вот статья, что куда деплоить надо, и как получить доступ к этому http://delphifmandroid.blogspot.com/2014/02/deployment-manager.html
  15. 2 балла
    Вот старое видео. Могу собрать апк. Screenrecorder-2018-11-09-03-12-15-842.mp4
  16. 2 балла
    Политика распространения библиотеки по подписке. На время действия подписки все обновления библиотеки бесплатные (планирую поддерживать такой же темп, как и сейчас. В среднем один релиз в неделю). По окончании подписки, вы имеете полное право продолжать пользоваться теми версиями, которые были получены по подписки. Цена лояльная, не высокая. Финальная стоимость будет зависеть от возможностей и классов приложений, которые можно разработать на ней. Цена будет объявлена ближе к релизу. Главная задача на первое время для меня, это дать возможность опробовать библиотеку в своих проектах. Надеюсь получить положительный опыт. Посмотреть, как работает поддержка. И понять для себя (клиента), устраивает это все его или нет. P.S. У меня нет первоочередной задачи заработать. Задача номер один для меня к которой я стремлюсь - это качественный продукт, который будет приносить выгоду для клиентов.
  17. 2 балла
    OnePeople

    помогие код сделать рабочим в firemonkey

    Вы уверены что Вам это надо? Может сначала литературу какую нибудь по delphi почитать, а уж потом что то делать!? 2.rar
  18. 2 балла
    dnekrasov

    Создание ссылки из TLabel.

    Просто надо привыкнуть к новому подходу к некоторым вещам. Зато возможностей побольше, чем в VCL. Да и удобнее, когда привыкнешь. ИМХО
  19. 2 балла
    dnekrasov

    рисование на Image1

    А этот код и не должен ничего рисовать. Почитайте про TPathData и его методы (хотя бы MoveTo и LineTo) У одного Canvas должно быть одинаковое количество BeginScene и EndScene - иначе получите Exception. В Image1MouseMove вообще не понятно что Вы хотели сделать.
  20. 2 балла
    Восстановил столбец с последними сообщениями. После обновления форума слетел блок.
  21. 1 балл
    slav_z

    Проверить существование TJSONObject

    Да нормально работает на XE8 и 10.3 procedure TForm6.Button1Click(Sender: TObject); var A: TJSONObject; begin A := TJSONObject(TJSONObject.ParseJSONValue('здесь неправильный json')); if Assigned(A) then A.ToString; end;
  22. 1 балл
    Ra72

    Мобильная разработка на Delphi 10.3 (Professional)

    Да, ответили следующее: Сделать Update лицензии, если "...with Mobile" не появилось, тогда удалить лицензию и повторно зарегистрировать. Update мне не помог, а вот удаление лицензии в License Manager-е и регистрация заново - помогло.
  23. 1 балл
    Евгений Корепов

    Разбор JSON с мультизапросом

    Мимо проходил. Вот вам код на php (собираем все данные в один массив и энкодим в json) $QueryArray = array( "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", ); $Index = 0; $ResultArray = array(); foreach ($QueryArray as $query) { if ($mysqli_result = mysqli_query($DBLink, $query)) while ($row = mysqli_fetch_array($mysqli_result, MYSQLI_ASSOC)) $ResultArray[$Index][] = $row; $Index++; } $ResultJSON = json_encode($ResultArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); echo $ResultJSON;
  24. 1 балл
    MrDevillio

    TNetHTTPRequest как отправить в body русский текст?

    Спасибо вам большое. И правда, перемудрил, вот так работает:
  25. 1 балл
    Ну так примерно var Fulltext: string; WS: NomenPortType; Begin WS := GetNomenPortType (False, '', nil, Domen); Fulltext := WS.InfoNom(KodVxod); // В переменную Fulltext присваивается ответ от сервера 1С. InfoNom - функция в 1С. End;
  26. 1 балл
    Ra72

    Мобильная разработка на Delphi 10.3 (Professional)

    А платформа установлена:
  27. 1 балл
    Barbanel

    Мобильная разработка на Delphi 10.3 (Professional)

    Правый клик по узлу Target Platforms -> Add Platform.
  28. 1 балл
    Barbanel

    переход к x64?

    Для андроида? Нет. Здесь https://codematters.online/embarcadero-august-2018-product-roadmap-part-1/ утверждается что компилятор будет готов к лету:
  29. 1 балл
    PerspEffect1.TopLeft := PerspEffect1.TopLeft+ TPointF.Create(5,0);
  30. 1 балл
    MrDevillio

    Показывает один и тот же Splash

    Спасибо за отзыв! Да, проект один и тот же. Разбирал apk файл, там нет "предыдущих" картинок. Проблему нашел. Так ведет себя телефон Lenovo A7010 (Android 6.0). Для проекта с одним и тем же именем он запоминает первые настройки (с которыми первый раз приложение запустилось) и их все время показывает. Да, наверное, какой-то кэш. Удаление и переустановка приложения, чистка памяти не помогает. Только перезагрузка устройства обновляет эти настройки. На другом, еще более стареньком LG такой фишки нет.
  31. 1 балл
    Brovin Yaroslav

    Показывает один и тот же Splash

    Проект устанавливаете один и тот же или каждый раз новый? Возможно картинка в кеше залипает. Еще советую распаковать полученный в ходе сборки apk файл и проверить его содержимое на момент наличия сплеш картинок.
  32. 1 балл
    dnekrasov

    как найти и удалить компонент на TabItem

    Вы используете LyContent.AddObject а этот метод добавляет только в LyContent.Children. Для того, чтобы добавить в LyContent.Components надо создавать фрейм с AOwner = LyContent или использовать LyContent.InsertComponent. А вообще - не надо заморачиваться с Components. Управляйте отображением фреймов с помощью Parent, а за временем жизни пусть следит Ваш TFramesFactory
  33. 1 балл
    Да, так и есть. Будет и iOS.
  34. 1 балл
    GASCHE

    Библиоека аналог USBDevice

    Дальше не дошли
  35. 1 балл
    dnekrasov

    TImageList  в  TImage

    ImageList1.Bitmap(Size, Index). Для уточнения - читайте Help. Не знаете английский - изучайте или словарём пользуйтесь (заодно и учитесь Help-ом пользоваться). Ещё раз повторюсь - здесь не кружок "юный Delphi-программист"
  36. 1 балл
    dnekrasov

    TImageList  в  TImage

    Это уже не смешно - здесь не кружок "юный Delphi-программист" и программированию не обучают. А по сути вопроса - зачем Вам вообще ImageList если нужны png-файлы. Используйте ресурсы (Project->Resources and Images), а загрузить в TBitmap можно так: function LoadBitmapFromResourceName(const AResName: string; AResType: PChar = RT_RCDATA): TBitmap; var RS: TResourceStream; begin RS := TResourceStream.Create(hInstance, AResName, AResType); try Result := TBitmap.CreateFromStream(RS); finally FreeAndNil(RS); end; end;
  37. 1 балл
    @Brovin Yaroslav вот такое поведение и скорость, как на видео, лично мне и нужны. Ждем, когда библиотека станет доступна для использования.
  38. 1 балл
    Первая опубликованная проба пера. Другие приложения в процессе разработки. Плюс лично я делаю еще параллельно большое демо приложение. Которое демонстрирует все компоненты в действии. Оно будет так же выложено в плей маркет и обновляться при обновлении возможностей компонентов и библиотеки. Этим летом будет приватная бета по России и странам СНГ. О бете я сообщу отдельной новостью. Моё личное желание на счет даты начала беты это конец июня. Библиотека на текущий момент работает в 10.2 и 10.3.
  39. 1 балл
    Нет, зачем. Будет и для iOS. В этом же и фишка, что единая кодовая база для разных платформ. Про добавление iOS - сроки не скажу. Но будет быстрее. Ибо сейчас Ярослав тратит время не только на сам андроид. Но и на платформо независимый код библиотеки.
  40. 1 балл
    dnekrasov

    помогие код сделать рабочим в firemonkey

    Не надо никак менять этот модуль. Скомпилился сразу и без ошибок (только варнинги). Насчет Ваших ошибок - похоже Вы просто uSMBIOS и System.TypInfo в uses забыли подключить.
  41. 1 балл
    dnekrasov

    Создание ссылки из TLabel.

    HitTest := True; Label1.StyledSetting := Label1.StyledSetting - [TStyledSetting.Style]
  42. 1 балл
    Dev

    Требования к целевому уровню API с августа 2018 г.

    кстати доступ в интернет тоже есть в этом списке и если он отмечен в Uses Permissions, то он будет работать сразу и без вопросов. https://developer.android.com/guide/topics/permissions/overview. в чем противоречие? вы наверно невнимательно прочитали, я не писал что разрешения все равно надо запросить, я писал что если даже их запросить... но все же прошу извинить если не доходчиво изложил мысль.
  43. 1 балл
    dnekrasov

    рисование на Image1

    Если в качестве курсора (картинки) карандаша, то ещё следует изучить как преобразовывать координаты: procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if D=1 then Image2.Position.Point := Image1.LocalToAbsolute(PointF(X, Y)); end; Да и HitTest у Image2 следует поставить False, а клик отслеживать на Image1. Да и когда D=1 и курсор находится внутри Image1 курсор мышки лучше сделать невидимым. Да и вообще - рисовать удобнее на PaintBox
  44. 1 балл
    OnePeople

    Монополия

    Обновлено 1.Исправлено сохранение игры, если игра установлена на диск С:. 2.Исправления сетевой синхронизации 3.Мелкие ошибки интерфейса
  45. 1 балл
    As I told you in a previous message - use logging after each potentially errorneous block/line.
  46. 1 балл
    Separate UI code from other logic.
  47. 1 балл
    Barbanel

    Идентификация устройства

    Всем доброго времени! Как и обещал, выкладываю либы для работы с KeyChain. Либы были взяты у братьев-китайцев, ни слова про покупку сказано не было (хотя чтобы выкачать их пришлось заплатить какому-то облачному сервису). Использовать просто, за все отвечают три функции: function StoreItemToKeychain(const AServiceName, AKey, AValue: string; const bOverride: Boolean=True): Boolean; function GetItemValueFromKeychain(const AServiceName, AKey: string): string; function DeleteItemFromKeychain(const AServiceName, AKey: string): Boolean; Ну и традиционно нужно подключить саму библиотеку, все находится в аттаче. Enjoy! ? iOS_KeyChain.zip
  48. 1 балл
    вот тут я делал демку по видео (источник там есть) https://github.com/sinuke/Image-Zoom-Demo
  49. 1 балл
    Martifan

    Получить голос из микрофона потоками

    Доброго времени сутки недавно для себя открыл что можно из микрофона получить данные потоками: Uses ..., Androidapi.JNI.Media; procedure TForm1.Button1Click(Sender: TObject); var bufferSize: integer; buffer: TJavaArray<Byte>; M: TMemoryStream; begin audioRecord := TJAudioRecord.JavaClass.init(TJMediaRecorder_AudioSource.JavaClass.MIC, 44100, TJAudioFormat.JavaClass.CHANNEL_IN_MONO, TJAudioFormat.JavaClass.ENCODING_PCM_16BIT, 44100 * 2); (audioRecord as JAudioRecord).startRecording; buffer := TJavaArray<Byte>.Create(8820); (audioRecord as JAudioRecord).read(buffer, 0, 8820); (audioRecord as JAudioRecord).stop; audioRecord.release; buffer заполняется данными я проверил все работает (можно код прописать чтобы этот buffer проигрывал) audioRecord := TJAudioRecord.JavaClass.init(TJMediaRecorder_AudioSource.JavaClass.MIC, 44100, TJAudioFormat.JavaClass.CHANNEL_IN_MONO, TJAudioFormat.JavaClass.ENCODING_PCM_16BIT, 44100 * 2); <--- как мне кажется здесь видно что это формат Wave я пытаюсь передать это все серверу: IdUDPClient1.SendBuffer(IdUDPClient1.Host, IdUDPClient1.Port, RawToBytes(buffer, buffer.Length)); сервер запущен на Windows но не получается я слышу только пикание Вопрос: как мне передать этот поток серверу (среды Windows) и как его проигрывать на сервере, может у кого есть опыт работы с этом сфере или какой нибудь документация имеется или какой нибудь предложение есть как все это сделать все совете и предложении очень важен Заранее спасибо согласитесь интересно использовать микрофон так и не дожидая пока он создаст файл всем удачи
  50. 1 балл
    вот так NotificationCenter1.ApplicationIconBadgeNumber := 0;
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...