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

Лидеры

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

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

    Модераторы


    • Баллы

      12

    • Постов

      2 517


  2. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      11

    • Постов

      2 124


  3. Pax Beach

    Pax Beach

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


    • Баллы

      3

    • Постов

      414


  4. Fedor K

    Fedor K

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


    • Баллы

      3

    • Постов

      55


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

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

  1. Ссылка на скачивание (Только для RAD Studio Berlin?fgx_0.7.1.118.zip Инструкция по установке: "Инструкция по установке набора компонентов FGX" Описание Эта версия включает в себя следующий набор компонентов: Дизайнер итемов - дизайнер итемов. TfgToast (UPDATED) - класс отображения быстрых сообщений TfgFlipView - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink TfgProgressDialog (UPDATED) - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED) - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet (UPDATED) - Аналог контекстного меню для мобильных платформ. TfgColorsPanel - Палитра цветов с возможностью выбора цвета. TfgGradientEdit (UPDATED) - Компонент выбора градиента. TfgLinkedLabel - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. (UPDATED) Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений TfgActionSheet: Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога. Теперь доступна возможность создать свой вариант диалога для андроида. Изменен порядо срабатывания событий OnCancel, OnHide в реализации на iOS. Раньше срабатывали OnHide -> OnCancel, Теперь: OnCancel -> OnHide Обновлен пример Общие улучшения в читабельности кода TfgProgressDialog, TfgActivityDialog: Добавлен новый вариант темы Theme = Custom и свойство ThemeID, позволяющий для андроида указать идентификатор своей темы диалога. Обновлен пример Общие улучшения в читабельности кода TfgGradientEdit: Добавлено событие OnPointRemoved, срабатывающее, когда точка удалена из градиента. Обновлен пример TfgToast: Исправлена ошибка на iOS, приводящая к AV при многочисленном отображении тостов. (Спасибо Сергею Пьянкову за найденную ошибку) Регистрация стилевых объектов: Теперь регистрируются только те объекты, которые не добавлены в палитру.
    8 баллов
  2. Компания Embarcadero начинает новую образовательную программу. Целью программы является предоставление бесплатного доступа к средствам разработки RAD Studio, Delphi, C++Builder для государственных школ и университетов. В рамках программы школа или университет может получить: до 15 лицензий RAD Studio Pro для использования в учебном классе с подпиской на обновления. Срок действия - один год. Тип лицензии - Concurrent. до 100 лицензий RAD Studio Pro для студентов/школьников для использования дома для выполнения домашних заданий. Тип лицензий - Workstation. Срок действия - 9 месяцев. Подписка на обновления также включена. Условия продления лицензий и подписки будут определены позднее. Лицензии в данной программе образовательные. Они позволяют использовать продукты только в целях обучения программированию. Любая разработка, в том числе коммерческая, некоммерческая, научная или выполнение внутренних разработок по автоматизации школы/университета с помощью этих лицензий запрещена. Для участия в программе образовательное учреждение должно заполнить форму, подготовить письмо об образовательном использовании и оправить ее в Embarcadero. Для участия в программе требуется прохождение минимальной квалификации и одобрения заявки со стороны компании Embracdero. Также для участия в программе образовательное учреждение обязуется разместить на своем сайте лого Образовательного партнера Embarcadero. Образец лого будет предоставлен позднее. Образовательный прайс-лист сохраняет свое действие. Если учебному заведению нужны постоянные лицензии, большее число лицензий или лицензии другого типа или на другую редакцию продукта, а также если заказчик не попадает в категории "государственная школа" или "государственный университет", то он может воспользоваться действующим прайс-листом. Вложения: EDU_Licence_EMBT_Programm 2016.doc Embarcadero Academic Program Release 8-24-16 RU.DOCX RU Academic License Order Form 070916 .xlsx
    2 балла
  3. _di_JIntent newIntent = TJIntent::Create(); newIntent->setAction(TJIntent::JavaClass->ACTION_VIEW); _di_JMimeTypeMap mime = TJMimeTypeMap::JavaClass->getSingleton(); _di_JString ExtToMime = mime->getMimeTypeFromExtension(StringToJString(L"apk")); String pth = System::Ioutils::TPath::GetPublicPath() + L"/app.apk"; // path app.apk _di_JFile my_file = TJFile::JavaClass->init(StringToJString(pth)); _di_Jnet_Uri uri = TJnet_Uri::JavaClass->fromFile(my_file); newIntent->setDataAndType(uri,ExtToMime); int my_flag = TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK; newIntent->setFlags(flag); SharedActivity()->startActivity(newIntent);
    2 балла
  4. Используйте TEncoding.UTF8 Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'my.html'), TEncoding.UTF8); Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'temp.html'), TEncoding.UTF8);
    2 балла
  5. нужно делать вот так: 1) использовать компоненты Ярослава 2) анимацию запускаем до потока (в котором выполняются разного рода запросы), по завершению операции в !синхронизации! выключаем анимацию
    2 балла
  6. Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html Автор: Андрей Ефимов Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
    1 балл
  7. Я пробовал убивать процесс, вместе с сервисом соответственно, чистил Recently Apps — не помогает. А была сборка, где работало все идеально. Копаю в сторону настройки SDK.
    1 балл
  8. нет необходимости, все аудио-стримы итак работают в потоках
    1 балл
  9. Вот в файле Winapi.BluetoothLE.pas написано что минимум 23 а максимум 525 байт { MTU } BTHLEENUM_ATT_MTU_MIN = 23; {$EXTERNALSYM BTHLEENUM_ATT_MTU_MIN} BTHLEENUM_ATT_MTU_MAX = $FFFF; {$EXTERNALSYM BTHLEENUM_ATT_MTU_MAX} BTHLEENUM_ATT_MTU_DEFAULT = BTHLEENUM_ATT_MTU_MIN; {$EXTERNALSYM BTHLEENUM_ATT_MTU_DEFAULT} BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION = 525; {$EXTERNALSYM BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION кто-то знает где копать ?
    1 балл
  10. Все просто. Отрисовка индикатора идёт в главном потоке. Вызывая Sleep в главном потоке, вы лочите главный поток на 5 секунд и как следствие всю отрисовку (Даже если вы выставите раньше Enabled=True). С UI компонентами можно работать только в главном потоке, поэтому все вызовы, работающие с компонентами из других потоков нужно завернуть в TThread.Synchronize.
    1 балл
  11. Pax Beach

    Андроид-фейсбук-вконтакте

    Бандл — это пакет параметров. Спасибо за подсказку. Использовать нужно так: TJnet_Uri.JavaClass.fromFile(TJFile.JavaClass.init(StringToJString(path))).toString;
    1 балл
  12. В качестве новости, кому интересна данная тема Toshiba представляет подключаемый модуль BLE для Bluetooth Developer Studio
    1 балл
  13. memo2.Lines.Add( xResp.O['Response'].I['count'].ToString );
    1 балл
  14. фигасе XSuperObject, это классно и кода меньше только не совсем понятно что в этой строке происходит xItems := xResp.O['Response'].A['Items']; xItems это типа объект весь json xResp.о это респонсе потом идет сразу a итемс а как до count достучаться ? так что ли xItems := xResp.O['Response'].A['count']; и почему o и a вообще просто первый раз с такой штуко работаю) "response": { "count": 104, "items": [
    1 балл
  15. Установить PAServer на удаленной машине (ПК/планшет) и все. Как сделать тут и тут. И вообще много в сети примеров, в том числе и на этом форуме где-то было.
    1 балл
  16. Fedor K

    Андроид-фейсбук-вконтакте

    При реализации OAuth 2.0 при помощи TWebBrowser главное отследить Redirect. В случае успешной авторизации в URL будет содержаться необходимый токен. Посмотрите в сторону использования вот этих форм (находятся в ..\source\data\rest): {$IFDEF MSWINDOWS} REST.Authenticator.OAuth.WebForm.Win {$ELSE} REST.Authenticator.OAuth.WebForm.FMX {$ENDIF} У них есть событие: property OnAfterRedirect: TOAuth2WebFormRedirectEvent read FOnAfterRedirect write FOnAfterRedirect; TOAuth2WebFormRedirectEvent = procedure(const AURL: string; var DoCloseWebView : boolean) of object; Вот обработчик: procedure TframeAutch.AfterRedirect(const AURL: string; var DoCloseWebView: boolean); var i:integer; Str: string; Params: TStringList; begin i := pos('#access_token=',AURL); if (i>0) then begin Str := AURL; Delete(Str,1,i); Params:=TStringList.Create; try Params.Delimiter:='&'; Params.DelimitedText := Str; token := Params.Values['access_token']; DoCloseWebView := True; finally Params.Free; end; end; end; **Код выше из XE7, сейчас мб что-то изменилось. Использовал такой подход для авторизации в vk, facebook, google+. ***Если нужно, могу сделать демку, но это только на выходных.
    1 балл
  17. krapotkin

    С днем рождения!

    Поздравляем Ярослава с Днем рождения! Благодарим за титанические усилия, которые он по собственной инициативе, не "благодаря", а скорее "вопреки", прилагает для развития нашего сообщества. Желаем не только профессионального благополучия, но и личного счастья! Ура, товарищи!
    1 балл
  18. Пишу на Delphi с ноября 1995 года (Delphi 1 под Win 3.11). До этого использовал TurboPascal и TurboC (еще с 1989 года), но как только увидел Delphi - то сразу влюбился в эту среду разработки. В последствии приходилось писать на С++, С#, PowerBuilder, но всегда возвращался на Delphi и каждый раз вздыхал с облегчением Однако в 2009-м уже серьёзно начал склоняться в сторону Java, но с появлением FireMonkey в очередной раз с радостью вздохнул и Delphi стала опять моей основной IDE. Теперь RAD Studio удовлетворяет все мои потребности в плане программирования и больше ни на какой другой язык я даже не смотрю.
    1 балл
  19. d7d1cd

    Как Вы используете RAD Studio

    Пишу на C++Builder специализированные приложения для себя и продажи. Одна из первых программ работает у меня с 2013 года.
    1 балл
  20. Необходимо использовать TJContext.JavaClass.NOTIFICATION_SERVICE вместо TJActivity.JavaClass.NOTIFICATION_SERVICE Для получения менеджера лучше использовать контекст (данный код работает на версии 4.4 и 5+): function GetNotificationService: JNotificationManager; var NotificationServiceNative: JObject; begin NotificationServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.NOTIFICATION_SERVICE); Result := TJNotificationManager.Wrap((NotificationServiceNative as ILocalObject).GetObjectID); end;
    1 балл
  21. Иконка изменится внутри приложения в рамах текущего контекста до ее завершения. С других приложений и в системе ничего не поменяется (см. прикрепление). Чтобы не влиять на другой функционал, достаточно сделать следующее: //запоминаем ид по умолчанию lDefaultId := TAndroidHelper.Context.getApplicationInfo.icon; //устанавливаем нашу кастомную иконку TAndroidHelper.Context.getApplicationInfo.icon := lId; //создаем локальное уведомление NotificationCenter.PresentNotification(lNotification); //возвращаем обратно TAndroidHelper.Context.getApplicationInfo.icon := lDefaultId; п.с. Если такой вариант не устраивает, всегда можно написать class helper for TBaseNotificationCenter и использовать классы JNotificationCompat_Builder, JNotificationManager, JNotification. Справка из developer.android.com.
    1 балл
  22. sinuke

    Как Вы используете RAD Studio

    познакомился с Delphi еще будучи школьником в 2005 году (до того момента вполне неплохо для своего возраста, считаю, баловался Turbo Pascal 7 под DOS - даже штук пять игр написал простеньких). Некоторое время баловался и забросил. Вот буквально с месяц назад снова "достал из закрамов" свой багаж знаний и написал небольшое и не сильно сложное приложение на FMX (первый опыт). Так что пока только хобби, но что-то меня начинает снова затягивать... =)
    1 балл
  23. когда-то тоже баловался делфи для себя, теперь хобби превратилось в работу.
    1 балл
  24. он извлекает из деплоймента файлы
    1 балл
  25. Это не баг, а фича. Так и должно работать. При использовании протокола GATT, максимальные пользовательские данные в пакете составляет 20 байт. Если нужно больше, дробите на пакеты.
    1 балл
  26. Привет Всем! Как принято в современных приложениях, догружать контент(обычно это картинки) при скролинге. я взял картинки пользователей этого форума Seattle LVdynamicLoadBitmap.zip Berlin LVdynamicLoadBitmap(Berlin).zip
    1 балл
  27. rareMax

    Передать значение в ITask

    О мне ответили) Скорее всего я что то не так понял - но Таск получает только последнюю итерацию цикла(почему?) (В принципе я свою задачу решил - воспользовался TParallel.For, но для себя все же интересно - можно ли передавать параметры, если да - то как) и так - пример для запуска: program Project1; {$APPTYPE CONSOLE} {$R *.res} uses FMX.Types, System.SysUtils, System.Threading; Const TEST_COUNT = 5; var Tasks: TArray<iTask>; I: Integer; begin try { TODO -oUser -cConsole Main : Insert code here } SetLength(Tasks, TEST_COUNT); // Смотри с этой строки for I := Low(Tasks) to High(Tasks) do Tasks[I] := TTask.Create( Procedure Begin Log.d(I.ToString); End); Tasks[I].Start; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; end.
    1 балл
  28. парсер делаю сам через функцию, отлично работает во всех проектах. всегда код страницы можно разделить на блоки, если этим не позаботились разработчики и блоки информации не инкременируются также можно предложить использовать регулярки
    1 балл
  29. Кривяков Виталий

    TUITabControl

    Используйте на здоровье, я не против, но претензии не принимаю .
    1 балл
  30. Igorek

    Как узнать мой IP адрес?

    Как узнать свой айпи? Платформа андроид, но лучше, если мультиплатформенную ф-цию.
    1 балл
  31. Посмотрите вот эту страничку http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device
    1 балл
  32. xenon54

    [Android] Как узнать мой IP адрес?

    uses IdCustomTransparentProxy, IdSocks, IdIPWatch, IdStack, IdTCPConnection, IdTCPClient, IdHTTP; function TForm1.localip : string; var AAddresses: TStrings; begin AAddresses := TStringList.Create; try TIdStack.IncUsage; try GStack.AddLocalAddressesToList(AAddresses); finally TIdStack.DecUsage; end; if AAddresses.Count > 0 then begin if TOSVersion.Platform = pfiOS then Result := AAddresses.Strings[AAddresses.Count-1]; //AAddresses if TOSVersion.Platform = pfWindows then Result := AAddresses.Strings[0]; end; finally AAddresses.Free; end; end; ​В "AAddresses" вы получите все локальные IP. Это будет и IP от wifi и ip от LTE\GPRS и т.д.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...