-
Постов
396 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Активность репутации
-
Martifan получил реакцию от Евгений Корепов в Linux Just Turned 25 and Delphi is Coming to Celebrate
http://blog.marcocantu.com/blog/2016-august-linux-25-delphi-coming.html
-
Martifan получил реакцию от Равиль Зарипов (ZuBy) в Linux Just Turned 25 and Delphi is Coming to Celebrate
http://blog.marcocantu.com/blog/2016-august-linux-25-delphi-coming.html
-
Martifan получил реакцию от AngryOwl в Linux Just Turned 25 and Delphi is Coming to Celebrate
http://blog.marcocantu.com/blog/2016-august-linux-25-delphi-coming.html
-
Martifan отреагировална Brovin Yaroslav в [RX] [FGX] Описание версии 0.7.1.112
Ссылка на скачивание (Только для RAD Studio Berlin): fgx_0.7.1.112.zip Инструкция по установке: "Инструкция по установке набора компонентов FGX" FGX - Donate: QIWI: 4890 4941 7671 0929 Yandex.Money: 4100175510891 Описание
Эта версия включает в себя следующий набор компонентов:
Дизайнер итемов - дизайнер итемов. TfgToast - класс отображения быстрых сообщений TfgFlipView - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink TfgProgressDialog (UPDATED) - Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED) - компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet (UPDATED) - Аналог контекстного меню для мобильных платформ. TfgColorsPanel - Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents (UPDATED) - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений
TfgActionSheet: Добавлены и реализованы события TfgActionSheet.OnShow, TfgActionSheet.OnHide, TfgActionSheet.OnItemClick. Добавлены свойство TfgActionSheet.Theme, позволяющее выбрать вариант темы: Auto - выбирает темную или светлую тему автоматически на основании текущего стиля; Light - использует светлую тему; Dark - темную Обновлен пример ActionSheetDemo. TfgApplicationEvents - добавлены новые событии: OnActivityResult (Андроид) - позволяет получить результаты/интенты из других приложений. OnFormBeforeShown - вызывает непосредственно до момент отображения формы OnFormActive - Вызывается, когда форма активируется. OnFormDeactivate - Вызывается, когда форма деактивируется OnFormCreate - Вызывается после создания экземпляра формы OnFormDestroy - Вызывается до разрушения формы OnScaleChanged - Вызывается, когда меняется скейл у формы. Например, при перетаскивании формы с одного экрана с одним скейлом на другой с другим скейлом (Больше актуально для OSX) TfgProgressDialog, TfgActivityDialog: Добавлены свойство Theme, позволяющее выбрать вариант темы: Auto - выбирает темную или светлую тему автоматически на основании текущего стиля; Light - использует светлую тему; Dark - темную. Общие изменения: Ассерты перенесены в скоп TfgAssert. -
Martifan получил реакцию от Kitty в iOS фоновом режиме
но есть приложении которые работают фоновом режиме Facebook и почти все банковские приложении их когда сворачиваешь геолокация остаётся включенным
-
Martifan отреагировална mrseagull в Как управлять ProgressBar с помощью Timer-а ?
У меня бомбит от таких вопросов. Когда человек просто поставил среду себе и даже не удасужился небольшую книжку для новичков пролистать. и пишут как цвет текста поменять или в таймере параметр менять - "Как сделать так чтобы было вот так".
Просите за флуд. Но такое все чаще
-
Martifan отреагировална Равиль Зарипов (ZuBy) в iOS фоновом режиме
можно дать понять IOS что после сворачивания приложение будет работать с сенсором
-
Martifan отреагировална bigjorj в Запретить появления клавиатуры
Я не проверял, но попробуйте следующее
FMX.Types.VKAutoShowMode := TVKAutoShowMode.Never;
-
Martifan отреагировална Rusland в RAD 11 на подходе?
Intel Abandons Atom Chips, Probably Leaving Mobile Industry
Туда им и дорога
-
Martifan получил реакцию от Dev в [Android] Как свернуть приложение?
Нашел еще один способ:
Uses Androidapi.Helpers; procedure TfMain.SpeedButton11Click(Sender: TObject); begin SharedActivity.moveTaskToBack(True); end; -
Martifan отреагировална krapotkin в Синхронизация
а в чем проблема?
варианты AppTethering, Datasnap, Web-сервер
-
Martifan отреагировална krapotkin в Быстро разрывается связь
ну так 100500 раз говорено, что не должен телефон напрямик обращаться к базам
нужен промежуточный сервер, который будет сидеть в базе и слушать запросы с телефона по HTTP
-
Martifan отреагировална Rusland в GPS
Собственно то что написал и есть пример. Но собственно нужно еще протестировать как будет работать при движении (я пока тестил когда объект неподвижен).
GetDistance я брал вроде у ZuBy:
function TFormMain.GetDistance(const aStart, aEnd: TMapCoordinate): Double; const // определение расстояния между двумя точками Radius = 6372795; // примерный радиус земли PiDiv180=Pi/180; var CosLatStart, SinLatStart, CosLatEnd, SinLatEnd, Delta, CosDelta, SinDelta, X, Y: Double; begin try CosLatStart := Cos(aStart.Latitude * PiDiv180); CosLatEnd := Cos(aEnd.Latitude * PiDiv180); SinLatStart := Sin(aStart.Latitude * PiDiv180); SinLatEnd := Sin(aEnd.Latitude * PiDiv180); Delta := (aEnd.Longitude * PiDiv180) - (aStart.Longitude * PiDiv180); CosDelta := Cos(Delta); SinDelta := Sin(Delta); Y := Sqrt(((CosLatEnd*SinDelta)*(CosLatEnd*SinDelta))+ ((CosLatStart*SinLatEnd-SinLatStart*CosLatEnd*CosDelta) *(CosLatStart*SinLatEnd-SinLatStart*CosLatEnd*CosDelta))); X := SinLatStart * SinLatEnd + CosLatStart * CosLatEnd * CosDelta; Result := Round(ArcTan2(Y, X) * Radius); except Result := -1; end; end;
Alexander, Решение рабочее.
-
Martifan отреагировална Rusland в GPS
Пока придумал вести список последних N-координат (я взял 10) и
1.) сравнивать последнюю полученную с предыдущей на измененное расстояние. Если расстояние больше чем M-метров (в моем случае 100м), значит координата "захвачена" с базовой станции, а не GPS
if (GetDistance(x,y,x2,y2)>100) then Result:=false 2.) во время стоянки объекта проверять принадлежит ли последняя координата (Ш0,Д0) многоугольнику вершинами которого являются предыдущие координаты (Ш1,Д1) - (ШN, ДN).
type tPolygon = array of tPoint; //tPoint - это запись, с двумя полями, x и y ... function IsCoordInPoly(x,y: integer; myP: tPolygon): boolean; //x и y - это координаты var //myP - массив с вершинами полигона i,j,npol: integer; inPoly: boolean; begin inPoly:=false; npol:=length(myP)-1; j:=npol; for i:=0 to npol do begin if ((((myP[i].y<y) and (y<myP[j].y)) or ((myP[j].y<=y) and (y<myP[i].y))) and (x>(myP[j].x-myP[i].x)*(y-myP[i].y) / (myP[j].y-myP[i].y)+myP[i].x)) then inPoly:=not inPoly; j:=i; end; result:=inPoly; end;
Но не оставляю надежды добраться до координат самого MapView
-
Martifan отреагировална Brovin Yaroslav в Хакнули регистрацию?
Скорее всего это все вручную делают. Единственное средство - это Модерация первого сообщения. Чтобы первый пост всегда модерировался. Если все ок, то тогда с пользователя снимается премодерация. Посмотрим за ситуацией недельку и примем решение.
Мы уже включали ее, когда год назад было активное наползновение спамеров.
-
Martifan отреагировална Равиль Зарипов (ZuBy) в RAD 11 на подходе?
Остаетесь надеяться что IDERA не подведет и в течении года хотя бы могли компилировать "Hello World". Может Делфи оживит эту платформу, главное действовать быстро, пока ниша пуста
-
Martifan отреагировална Alex924 в [TMultiView] Текст кнопки вылезает за границы TMultiView в режиме NavigationPane
Всё оказалось даже проще, нужно выставить свойство ClipChildren у TMultiView в true и дочерние компоненты выходящие за границу автоматически скрываются!
-
Martifan отреагировална Равиль Зарипов (ZuBy) в DeviceInfo - модуль для получения информации о девайсе
Обновленная версия, кое что подправил теперь нет ошибки на IOS 64 bit
результат (Android, IPhone 4S, IPhone 6, MacOS Yosemite на виртуалке, Windows 10)
Добавлена функция isGPSActive [ANDROID], определяет включен ли сенсор на устройстве
DeviceInfo.zip
-
Martifan отреагировална zairkz в С помощью каких компонентов проще всего реализовать онлайн чат?
Можно помучаться с TListView, но я остановился на TPresentedScrollBox и стилизованных Label'ах (облачки сообщений, под разные scale на png 9patch), скорость скролла хорошая, плюс есть боунсы и тд.
Приложил исходники проекта, также в архиве отдельно chat.style
procedure TForm2.ChatUp(UsID: integer; LastId: integer; CText: string); var Labb: TLabel; Marg: Single; LT: TLayout; begin LT := TLayout.Create(PR); LT.Parent := PR.Content; LT.Margins.Top := 2; LT.Align := TAlignLayout.Top; LT.Position.Y := PR.ContentBounds.Height + 50; Marg := PR.Width * 0.20; Labb := TLabel.Create(PR); Labb.Parent := PR; Labb.Align := TAlignLayout.Top; Labb.AutoSize := True; Labb.WordWrap := True; Labb.TextSettings.WordWrap := True; if UsID = 0 then begin Labb.Margins.Left := Marg; Labb.Margins.Right := 4; Labb.TextAlign := TTextAlign.Trailing; Labb.StyleLookup := 'labelchat_green'; end else begin Labb.Margins.Right := Marg; Labb.Margins.Left := 4; Labb.TextAlign := TTextAlign.Leading; Labb.StyleLookup := 'labelchat_white'; end; Labb.NeedStyleLookup; Labb.Text := ' ' + CText + ' '; LT.Height := Labb.Height + 4; Labb.Parent := LT; if UsID = 0 then Labb.Align := TAlignLayout.Right else Labb.Align := TAlignLayout.Left; end; Первые признаки шизофрении:
Chat.zip
-
Martifan отреагировална Andrey Efimov в Какие статьи вы хотели бы видеть в блогах?
Статья/видео урок на английском: http://delphi.org/2014/07/android-voice/
-
Martifan отреагировална fsdb в Какие статьи вы хотели бы видеть в блогах?
1. как воспроизвести потоковое видео с IP камеры на Андройд
2. пример использования распознания речи google api на Андройд
3. пример передачи даных из сервиса в приложение / узнать из севиса что приложение работает
-
Martifan получил реакцию от zairkz в RAD 11 на подходе?
что тут спорить, кому не нравится на Delphi программировать есть очень много языков где можно писать код некто вас не держит а кому нравится остается на Delphi несмотря на рейтинги и всякое фигни вот и все, не хотите или рейтинг ненравится вас некто не держит
-
Martifan отреагировална rareMax в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.
Ну по вашей ссылке - там ничего насчет стилей не увидел.
-
Martifan отреагировална Andrey Efimov в Помогите начать
Проблема в поддержке версии Андроид, в данном случае, XE5 не поддерживает разработку приложений под Android 5.
Как уже сказал Zuby, чтобы разрабатывать под пятый Андроид, необходимо установить более свежую версию RAD Studio. Поддержка появилась с версии XE7 Upd 1, ставьте её, а ещё лучше, сразу последнюю, RAD Studio Seattle и будет вам счастье.
Справка по поддерживаемым версиям Android:
XE5: http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development
XE6: http://docwiki.embarcadero.com/RADStudio/XE6/en/Android_Devices_Supported_for_Application_Development
XE7 (для Android 5, выпущен ап): http://docwiki.embarcadero.com/RADStudio/XE7/en/Android_Devices_Supported_for_Application_Development
XE8: http://docwiki.embarcadero.com/RADStudio/XE8/en/Android_Devices_Supported_for_Application_Development
Seattle: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Android_Devices_Supported_for_Application_Development
p.s. Разрабатывать на XE5, самое неблагодарное дело (как вспомню, сколько там багов было, даже в дрожь бросает), переходите на новую версию.
-
Martifan отреагировална beklexx в GPS
я ещё не тестил, но судя по коду предоставленному Русланом, как то так:
procedure TFrmMain.LocationSensorLocationChanged(Sender: TObject; const [Ref] OldLocation, NewLocation: TLocationCoord2D); var Lat,Lon:String; lSensorType : String; begin lSensorType := GetLocationSensorType(LocationSensor); if lSensorType = 'Triangulation' then exit; Lat:=Format('%2.6f',[NewLocation.Latitude]); Lon:=Format('%2.6f',[NewLocation.Longitude]); // выполняем что то там end;