Michael Swindell поставил перед нами задачу создания мобильного приложения с помощью Delphi xe5 для iOS и Android, используя при этом только одну строчку кода. Подумав об этом некоторое время, вот моё первое приложение с одной строчкой кода, "Map My Location". Это приложение использует компоненты TLocationSensor, TToolBar, TLabel и TWebBrowser для создания Android и iOS приложения, которое отображает карты Google с моим текущим местоположением.
upd (20.04.2014). Добавил информацию о разрешениях.
Чтобы начать этот проект, запускаем Delphi XE5 и создаём новый проект, используя меню "File | New | FireMonkey Mobile Application - Delphi".
Выбираем шаблон "Blank Application". На пустой форме добавляем компонент "TToolBar" и устанавливаем свойство "Align: alTop". Добавляем компонент "TLabel" к "TToolBar" и устанавливаем свойства "Text: Map My Location; TextAlign: taCenter; Align: taCenter";. Далее добавляем компонент "TWebBrowser" на форму и устанавливаем свойство "Align: alClient;" (компонент заполнит оставшуюся часть клиентской области формы). Размещаем компонент "TLocationSensor" на форме, он позволит получать координаты широты и долготы от датчика GPS, ставим свойство "Active: True;" (при запуске приложение сразу начнёт определять координаты).
Создаем обработчик события "OnLocationChanged" для "TLocationSensor" и добавляем одну строчку кода:
procedure TForm1.LocationSensor1LocationChanged(Sender: TObject; const OldLocation, NewLocation: TLocationCoord2D); begin WebBrowser1.Navigate( Format( 'https://maps.google.com/maps?q=%s,%s&output=embed', [NewLocation.Latitude.ToString, NewLocation.Longitude.ToString] ) ); end;
В этой строке кода мы получаем широту (NewLocation.Latitude) и долготу(NewLocation.Longitude), преобразуем в строки (используя функцию ToString) и вводим оба значения в строку с помощью функции Format, после чего передаём полученную строку в TWebBrowser.Navigate.
Необходимо также дать разрешение на использование GPS датчика и подключения к Интернету:
Заходим в меню «Project -> Optoins -> Uses Permissions» и ставим галочки напротив пунктов:
- Access location extra commands
- Access mock location
- Internet
p.s. Это вольный перевод статьи Delphi XE5 iOS and Android One Line of Code App - Map My Location (Автор: David Intersimone)