Лидеры
Популярный контент
Показан контент с высокой репутацией 13.09.2016 во всех областях
-
[RX] [FGX] Описание версии 0.7.1.118
yooSee и 7 других отреагировал Brovin Yaroslav за тема
Ссылка на скачивание (Только для 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 баллов -
Образовательная программа Embarcadero
Евгений Корепов и ещё один отреагировал Brovin Yaroslav за тема
Компания 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 .xlsx2 балла -
2 балла
-
_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 балла
-
No mapping for the Unicode character exists in the target multi-byte code page
Kitty и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
Используйте 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 балла -
Помогите разобраться с потоком
Rusland и ещё один отреагировал Равиль Зарипов (ZuBy) за вопрос
нужно делать вот так: 1) использовать компоненты Ярослава 2) анимацию запускаем до потока (в котором выполняются разного рода запросы), по завершению операции в !синхронизации! выключаем анимацию2 балла -
[Статья][AdMob] Добавляем рекламный блок в приложение
Ingalime отреагировал Andrey Efimov за тема
Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html Автор: Андрей Ефимов Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.1 балл -
Я пробовал убивать процесс, вместе с сервисом соответственно, чистил Recently Apps — не помогает. А была сборка, где работало все идеально. Копаю в сторону настройки SDK.1 балл
-
Одновременное воспроизведение звуков
virus_forever отреагировал Равиль Зарипов (ZuBy) за вопрос
нет необходимости, все аудио-стримы итак работают в потоках1 балл -
баг в компоненте TBluetoothLE
Rusland отреагировал chaplin.u@gmail.com за вопрос
Вот в файле 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 балл -
Помогите разобраться с потоком
Kitty отреагировал Brovin Yaroslav за вопрос
Все просто. Отрисовка индикатора идёт в главном потоке. Вызывая Sleep в главном потоке, вы лочите главный поток на 5 секунд и как следствие всю отрисовку (Даже если вы выставите раньше Enabled=True). С UI компонентами можно работать только в главном потоке, поэтому все вызовы, работающие с компонентами из других потоков нужно завернуть в TThread.Synchronize.1 балл -
Бандл — это пакет параметров. Спасибо за подсказку. Использовать нужно так: TJnet_Uri.JavaClass.fromFile(TJFile.JavaClass.init(StringToJString(path))).toString;1 балл
-
В качестве новости, кому интересна данная тема Toshiba представляет подключаемый модуль BLE для Bluetooth Developer Studio1 балл
-
Неполучается получить элемент из JSON
Rusland отреагировал Равиль Зарипов (ZuBy) за вопрос
memo2.Lines.Add( xResp.O['Response'].I['count'].ToString );1 балл -
Неполучается получить элемент из JSON
Rusland отреагировал Просто Проги за вопрос
фигасе 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 балл -
Установить PAServer на удаленной машине (ПК/планшет) и все. Как сделать тут и тут. И вообще много в сети примеров, в том числе и на этом форуме где-то было.1 балл
-
При реализации 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 балл
-
Поздравляем Ярослава с Днем рождения! Благодарим за титанические усилия, которые он по собственной инициативе, не "благодаря", а скорее "вопреки", прилагает для развития нашего сообщества. Желаем не только профессионального благополучия, но и личного счастья! Ура, товарищи!1 балл
-
Как Вы используете RAD Studio
Прикладной отреагировал dnekrasov за вопрос
Пишу на Delphi с ноября 1995 года (Delphi 1 под Win 3.11). До этого использовал TurboPascal и TurboC (еще с 1989 года), но как только увидел Delphi - то сразу влюбился в эту среду разработки. В последствии приходилось писать на С++, С#, PowerBuilder, но всегда возвращался на Delphi и каждый раз вздыхал с облегчением Однако в 2009-м уже серьёзно начал склоняться в сторону Java, но с появлением FireMonkey в очередной раз с радостью вздохнул и Delphi стала опять моей основной IDE. Теперь RAD Studio удовлетворяет все мои потребности в плане программирования и больше ни на какой другой язык я даже не смотрю.1 балл -
Пишу на C++Builder специализированные приложения для себя и продажи. Одна из первых программ работает у меня с 2013 года.1 балл
-
Необходимо использовать 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 балл
-
Иконка изменится внутри приложения в рамах текущего контекста до ее завершения. С других приложений и в системе ничего не поменяется (см. прикрепление). Чтобы не влиять на другой функционал, достаточно сделать следующее: //запоминаем ид по умолчанию 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 балл
-
познакомился с Delphi еще будучи школьником в 2005 году (до того момента вполне неплохо для своего возраста, считаю, баловался Turbo Pascal 7 под DOS - даже штук пять игр написал простеньких). Некоторое время баловался и забросил. Вот буквально с месяц назад снова "достал из закрамов" свой багаж знаний и написал небольшое и не сильно сложное приложение на FMX (первый опыт). Так что пока только хобби, но что-то меня начинает снова затягивать... =)1 балл
-
Как Вы используете RAD Studio
Rusland отреагировал Равиль Зарипов (ZuBy) за вопрос
когда-то тоже баловался делфи для себя, теперь хобби превратилось в работу.1 балл -
Вылетает приложение для Андроид
Iscander отреагировал Равиль Зарипов (ZuBy) за вопрос
он извлекает из деплоймента файлы1 балл -
баг в компоненте TBluetoothLE
Pax Beach отреагировал Евгений Корепов за вопрос
Это не баг, а фича. Так и должно работать. При использовании протокола GATT, максимальные пользовательские данные в пакете составляет 20 байт. Если нужно больше, дробите на пакеты.1 балл -
Динамическая подгрузка картинок в ListView
Tom1984 отреагировал Равиль Зарипов (ZuBy) за вопрос
Привет Всем! Как принято в современных приложениях, догружать контент(обычно это картинки) при скролинге. я взял картинки пользователей этого форума Seattle LVdynamicLoadBitmap.zip Berlin LVdynamicLoadBitmap(Berlin).zip1 балл -
О мне ответили) Скорее всего я что то не так понял - но Таск получает только последнюю итерацию цикла(почему?) (В принципе я свою задачу решил - воспользовался 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 балл
-
HTML парсер
Просто Проги отреагировал Равиль Зарипов (ZuBy) за вопрос
парсер делаю сам через функцию, отлично работает во всех проектах. всегда код страницы можно разделить на блоки, если этим не позаботились разработчики и блоки информации не инкременируются также можно предложить использовать регулярки1 балл -
TUITabControl
Rusland отреагировал Кривяков Виталий за тема
Используйте на здоровье, я не против, но претензии не принимаю .1 балл -
Как узнать свой айпи? Платформа андроид, но лучше, если мультиплатформенную ф-цию.1 балл
-
[Android] Как узнать мой IP адрес?
Pax Beach отреагировал Andrey Efimov за вопрос
Посмотрите вот эту страничку http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device1 балл -
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 балл