-
Постов
396 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Активность репутации
-
Martifan отреагировална Равиль Зарипов (ZuBy) в узнать расстояние между 2 точками
uses Math, FMX.Maps
function TMapsEngine.GetDistance(const aStart, aEnd: TMapCoordinate): Real; const Radius = 6372795; PiDiv180 = Pi / 180; var CosLatStart, SinLatStart, CosLatEnd, SinLatEnd, Delta, CosDelta, SinDelta, X, Y: Real; 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; рассчитывает отрезок по прямой, не по дороге!
-
Martifan отреагировална krapotkin в узнать расстояние между 2 точками
function DistanceMeters(const Crd1,Crd2:TLocationCoord2D):Double; begin try result := (1609.344*3958.75 * arccos(sin(Crd1.Latitude/57.2958) * sin(Crd1.Latitude/57.2958) + cos(Crd1.Latitude/57.2958) * cos(Crd2.Latitude/57.2958) * cos(Crd2.Longitude/57.2958 - Crd1.Longitude/57.2958))); except result := 0; end; end; -
Martifan отреагировална Brovin Yaroslav в [TMapView] Удаление маркеров TMapView
Добрый день,
При добавлении маркера, методы возвращаюют вам инстанс маркера.
/// <summary>Add marker specified by Descriptor and return new TMapMarker object</summary> function AddMarker(const Descriptor: TMapMarkerDescriptor): TMapMarker; /// <summary>Add circle specified by Descriptor and return new TMapCircle object</summary> function AddCircle(const Descriptor: TMapCircleDescriptor): TMapCircle; /// <summary>Add polygon specified by Descriptor and return new TMapPolygon object</summary> function AddPolygon(const Descriptor: TMapPolygonDescriptor): TMapPolygon; /// <summary>Add polyline specified by Descriptor and return new TMapPolyline object</summary> function AddPolyline(const Descriptor: TMapPolylineDescriptor): TMapPolyline; Сохраните его. И когда нужно будет его удалить, выполните:
Marker.Remove; Marker.Free; Или
Marker.DisposeOf; -
Martifan отреагировална Кривяков Виталий в TUITabControl
Добрый день!
В теме про наш продукт http://fire-monkey.ru/topic/1519-1c-papyc-mobilnoe-prilozhenie-dlia-masterov-priemschiko/ меня просили поделиться исходным кодом компонента TabControl с поддержкой слайда табов пальцем. С удовольствием делюсь
В составе архива сам компонент и пример его использования.
FMXUI.zip
-
Martifan получил реакцию от XXXXXX в Проблема авто-скрола в TMemo
Procedure ResizeMemo(AMemo: TMemo); const Offset = 4; begin AMemo.Height := AMemo.ContentBounds.Height + Offset; end; -
Martifan получил реакцию от Brovin Yaroslav в [TIdHTTP] Пример авторизации на каком-нибудь сервисе
Один из вариантов:
procedure TfMainForm.btnLoginClick(Sender: TObject); Var Parameters: TStrings; begin Parameters := TStringList.Create; Parameters.Add('user='+editPersonalNumber.Text); Parameters.Add('password='+editPassword.Text); IdHttp1.Post('http://MySite.ru/getuser.php',Parameters); End; -
Martifan получил реакцию от krapotkin в Неблокирующий диалог в мобильном приложении
используйте 2 TRectangle одну сделать темным и чуть чуть прозрачным чтобы перекрывал весь проект ну что бы сделал эффект темного фона а вторую виде диалоговое форма и будет вам щастя )
-
Martifan отреагировална xenon54 в Неблокирующий диалог в мобильном приложении
Что мешает указать stylelookup для панели "backgroundstyle" или как там он у вас зашит.
-
Martifan отреагировална Andrew в Обновление Update1 Delphi XE8
Поговорив с сотрудником Embarcadero, приобрел Update Subscription. Теперь все в порядке. Просто им нужно научиться доносить информацию до своих клиентов и поставлять Allsoft.ru полный прайс-лист.
-
-
Martifan отреагировална XXXXXX в XE8 и хинты
Если не будет другого выхода, можете нарисовать Хинт вручную и показывать его при ивенте OnMouseEnter
-
Martifan отреагировална Brovin Yaroslav в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования
Приступил к созданию компонента по отображению текста с поддержкой форматирования для настольной версии клиента, чтобы отображать HTML разметку постов.
На текущий момент уже поддерживаются следующие возможности:
Параграфы и просто блоки текста (<p>, <span>) Изменение цвета для любого текста (color) Изменение параметров шрифта (размер, название, стиль) (font-size, font-style, font-weight, font-family, <b>, <strong>) Разрыв строки (<br/>)
-
Martifan отреагировална Brovin Yaroslav в [TMultiView] Как избежать задержки при первом появлении TMultiView?
Так, я посмотрел. Сохраняем себе такую процедуру:
procedure PreloadContent(const Control: TControl); var I: Integer; begin if Control is TStyledControl then TStyledControl(Control).ApplyStyleLookup; for I := 0 to Control.ControlsCount - 1 do PreloadContent(Control.Controls[I]); end; Она форсирует загрузку стилей. Задержка при появлении TMutliView заключается в том, что стиль загружается не сразу у любого контрола, а только по мере появления контрола. Обычно это происходит при первой отрисовки. Это правило касается всех контролов.
Поэтому, в этом случае, вам нужно форсировать загрузку стилей. Это можно сделать при помощи моей процедуру PreloadContent.
Добавьте в TForm.OnCreate и это решит задержку при первом появлении:
PreloadContent(MultiView1); -
Martifan отреагировална Brovin Yaroslav в [TMultiView] Как избежать задержки при первом появлении TMultiView?
Задержка пропадает, если использовать этот код в TForm.OnShow?
var Buffer: TBitmap; begin // Draw to Bitmap force to load all styles, measure size, build font-glyphs etc Buffer := TBitmap.Create(1, 1); try Buffer.Canvas.BeginScene; try MultiView.PaintTo(Buffer.Canvas, Control.LocalRect); finally Buffer.Canvas.EndScene; end; finally Buffer.DisposeOf; end; -
Martifan получил реакцию от Hevard в Как поменять надписи для кнопок в MessageDlg?
Извините я сам нашел решение если кому пригодится:
1. находим файл FMX.Consts.pas
2. Положи его в папку с проектом.
3. Menu Project->Add to Project - добавь этот файл.
4. Сохрани проект. Закрой проект. Открой проект заново.
5. Menu -> Project -> Build All Project
6. Запускаем.
-
Martifan отреагировална Brovin Yaroslav в Разработка настольной версии клиента для форума по FireMonkey с использованием FireMonkey
Приступил к разработке клиента с использованием FireMonkey для форума. В будущем код будет открытым и каждый сможет посмотреть, как реализованы те или иные вещи.
А пока пара скриншотов:
-
Martifan получил реакцию от MrAnderson в Получить голос из микрофона потоками
Доброго времени сутки
недавно для себя открыл что можно из микрофона получить данные потоками:
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) и как его проигрывать на сервере, может у кого есть опыт работы с этом сфере или какой нибудь документация имеется или какой нибудь предложение есть как все это сделать все совете и предложении очень важен
Заранее спасибо согласитесь интересно использовать микрофон так и не дожидая пока он создаст файл
всем удачи
-
Martifan получил реакцию от Евгений Корепов в Как поменять надписи для кнопок в MessageDlg?
Извините я сам нашел решение если кому пригодится:
1. находим файл FMX.Consts.pas
2. Положи его в папку с проектом.
3. Menu Project->Add to Project - добавь этот файл.
4. Сохрани проект. Закрой проект. Открой проект заново.
5. Menu -> Project -> Build All Project
6. Запускаем.
-
Martifan отреагировална Brovin Yaroslav в [Вебинар] Новый подход к разработке компонентов FireMonkey в RAD Studio XE8. Часть 2
Тема: Новый подход к разработке компонентов FireMonkey в RAD Studio XE8. Часть 2 Дата и время: 10 июня 2015 года в 12:00 Участники: Денис Васильев и Бровин Ярослав Регистрация: ссылка Участие бесплатное Запись вебинара будет доступна здесь: http://www.youtube.com/playlist?list=PLNexYoB7XRWZv-6QviwJzdRKthKuBR_dG
В рамках вебинара продолжим знакомство с новым подходом разработки компонентов FireMonkey "Контрол – Модель – Презентация". Создание нативных представлений для iOS. Разберем несколько примеров.
В вебинаре примет участие Ярослав Бровин, ведущий разработчик Embarcadero.
-
Martifan получил реакцию от egeven в Как поменять надписи для кнопок в MessageDlg?
Извините я сам нашел решение если кому пригодится:
1. находим файл FMX.Consts.pas
2. Положи его в папку с проектом.
3. Menu Project->Add to Project - добавь этот файл.
4. Сохрани проект. Закрой проект. Открой проект заново.
5. Menu -> Project -> Build All Project
6. Запускаем.
-
Martifan получил реакцию от Ra72 в [iOS] Приложение запускается на iOS Simulator и тут же закрывается.
может попробовать 30221_ios_8_simulator_hotfix_beta_for_xe8
http://cc.embarcadero.com/Item/30221
-
Martifan получил реакцию от Kitty в [Android] Не отображается карта в приложении
я вам вернул проект и причина у вас 2 из за чего не работала у вас проект:
1) надо правильно создать API KEY я для вас создал и указал проекте
2) для того чтобы получить результат надо указать координаты у вас не было указана
в общем там все сделано посмотрите видеть вопросы пишите
удачного дня
-
Martifan получил реакцию от Liberator в [Android] Не отображается карта в приложении
я вам вернул проект и причина у вас 2 из за чего не работала у вас проект:
1) надо правильно создать API KEY я для вас создал и указал проекте
2) для того чтобы получить результат надо указать координаты у вас не было указана
в общем там все сделано посмотрите видеть вопросы пишите
удачного дня
-
-