Everything posted by gorodoro
-
TfgMap + protomaps
Просто оставлю это здесь, мало ли, вдруг добавите поддержку в FGX, потому что выглядит вполне себе перспективно, а главное подключается чрезвычайно просто (но что там у неё под капотом, я без понятия, предупреждаю сразу). Возможно, все уже в курсе и один я опять отстал от жизни, но на всякий случай — теперь карту, оказывается, можно хостить одним файлом: Ну, т.е. буквально в корне сайта только индексный файл + сама карта — и больше ничего. Карта векторная, поддерживает всякие навороты (я пока подключил обе темы, светлую и тёмную, но вроде как можно кастомизировать и POI, и UI), у себя развернул так: https://protomaps.com 1️⃣ wget https://github.com/protomaps/go-pmtiles/releases/download/v1.31.2/go-pmtiles_1.31.2_Linux_x86_64.tar.gz 2️⃣ tar -xzf go-pmtiles_1.31.2_Linux_x86_64.tar.gz 3️⃣ wget -O kazakhstan.geojson https://raw.githubusercontent.com/glynnbird/countriesgeojson/master/kazakhstan.geojson 4️⃣ ./pmtiles extract https://build.protomaps.com/20260726.pmtiles kazakhstan.pmtiles --region=kazakhstan.geojson Все версии/даты/названия, разумеется, актуальны на сегодня-завтра, поэтому их лучше брать в первоисточнике: ✅ Загрузчик: https://github.com/protomaps/PMTiles ✅ Карты: https://maps.protomaps.com/builds Пример рабочего индексного файла: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Карта Казахстана</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@latest/dist/maplibre-gl.css" /> <style> :root { color-scheme: light dark; } *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html, body { width: 100%; height: 100%; overflow: hidden; background-color: light-dark(#fff, #000); } #map { position: fixed; inset: 0; width: 100%; height: 100dvh; } .maplibregl-canvas, .maplibregl-canvas-container, #map canvas { outline: none !important; border: none !important; box-shadow: none !important; } </style> </head> <body> <div id="map"></div> <script type="module"> import { Map, NavigationControl, addProtocol } from 'https://cdn.jsdelivr.net/npm/maplibre-gl@latest/+esm'; import { Protocol } from 'https://cdn.jsdelivr.net/npm/pmtiles@latest/+esm'; import layers from 'https://cdn.jsdelivr.net/npm/protomaps-themes-base@latest/+esm'; addProtocol('pmtiles', new Protocol().tile); const createMapStyle = (themeName) => ({ version: 8, glyphs: 'https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf', sprite: `https://protomaps.github.io/basemaps-assets/sprites/v4/${themeName}`, sources: { 'kazakhstan_source': { type: 'vector', url: 'pmtiles://kazakhstan.pmtiles' } }, layers: layers('kazakhstan_source', themeName) }); const themeQuery = window.matchMedia('(prefers-color-scheme: dark)'); const getCurrentTheme = () => themeQuery.matches ? 'dark' : 'light'; const map = new Map({ container: 'map', style: createMapStyle(getCurrentTheme()), center: [71.430411, 51.128201], zoom: 12 }); map.addControl(new NavigationControl()); themeQuery.addEventListener('change', (e) => { const newTheme = e.matches ? 'dark' : 'light'; map.setStyle(createMapStyle(newTheme)); }); </script> </body> </html> Если открыть эту карту на 1080p в 100%, то объём сетевого трафика составит ~300 kB: В целом всё выглядит и работает как самая обычная карта: Возможно, кому-нибудь пригодится, если вдруг потребуется хостить у себя и никому не платить за доступ к карте.
-
Анимированная заставка (настройка цветов)
В Assets Manager эти кнопки тоже не работают (в смысле, значение самого поля при нажатии меняют, но на цвет не влияют):
-
Анимированная заставка (настройка цветов)
Символы разные Не работают кнопки 🢐 и 🢒
-
ContentPadding у кнопок разного вида не изменяется меньше какого-либо значения
А если на старте ещё такое добавить, то тогда размер кнопки совсем оптимальный получается: procedure TFormMain.fgFormCreate(Sender: TObject); begin fgButton1.Appearance.ContentPadding.SetValues(8, 0, 8, 0, 0, 0); end; Видимо, это как-то связано с тем, что Ярослав ранее говорил:
-
ContentPadding у кнопок разного вида не изменяется меньше какого-либо значения
Я в итоге так сделал: procedure buttonResize(aButton: TfgButton; aSize: single); begin aButton.TextSettings.Font.Size := aSize * TfgAndroidHelper.Activity.getResources.getConfiguration.fontScale; aButton.Realign; var Ls := aButton.MeasureSize(TfgMeasuringSpecification.Unspecified, 0, TfgMeasuringSpecification.Fixed); Ls.Width := aButton.Appearance.ContentPadding.Left + Ls.Width + aButton.Appearance.ContentPadding.Right; Ls.Height := aButton.Appearance.ContentPadding.Top + (aButton.TextSettings.Font.Size * 2) + aButton.Appearance.ContentPadding.Bottom; aButton.Size.SetSizeF(Ls); end; procedure TFormMain.fgApplicationEvents1ApplicationStateChanged(Sender: TObject; const AOldState, ANewState: TfgApplicationState); begin buttonResize(fgButton1, 20); //размер шрифта, разумеется, на своё усмотрение end; Выглядит так: Screen_recording_20250423_190852.mp4 Не самое изящное решение, но всё вроде вполне корректно и пропорционально 🥲
-
ContentStyle
Это только Android (13 в моём случае). Если есть возможность проверить на iOS — пожалуйста, отпишитесь, как оно себя там ведёт.
-
ContentStyle
1. Создал темы и сохранил изменения: 2. Прописал нужное в \Templates\Android\styles.xml и сохранил: 3. Включил IsTransparent: 4. Ожидаю, что цвет шрифта в системном заголовке (часы, иконки) будет автоматически переключаться в зависимости от текущей темы (потому что ContentStyle = Auto) : procedure TFormMain.fgSwitch1Changed(Sender: TObject); begin if fgSwitch1.IsChecked then ThemeName := 'Theme Dark' else ThemeName := 'Theme Light'; end; ... однако по факту цвет не меняется: screen-20250320-225849.mp4 Project4.zip
-
Сервис биометрической аутентификации (Touch ID, Face ID, Iris) 1.18.8.0
🔥
-
1.15.5.0 Русский
SVG 🔥!
-
Общая просьба
А этот "жест свайпа с левого края экрана" — он по умолчанию работает для всех полноэкранных телефонов, или нужно что-то отдельно настраивать в FGX-приложении (в коде или XML)?
-
Улучшения TfgToast
Имейте ввиду: на Android 12 наблюдается такая странная проблема — в тостах вдруг иногда начинает отображаться иконка по умолчанию: Пока спасает только перезагрузка устройства. Исправления до сих пор нет (обновление Android до 12.1 не помогло, ноябрьское обновление сего года — тоже), так что ждём, когда в Google соизволят снизойти и обратить, наконец, своё внимание на соответствующий репорт, которому уже второй годик пошёл... p.s. У кого уже есть Android 13 на руках — отпишитесь, пожалуйста, есть ли там такое, или же проблема присуща исключительно 12-й версии.
-
1.15.0.0 Русский ⚗️
Если я правильно понял, то всё вроде ок: document_5453979867391466806.mp4
-
1.15.0.0 Русский ⚗️
Можно демку в исходниках?
-
1.15.0.0 Русский ⚗️
На Asus Nexus 7 (2012, Android 5.0.0) всё ок: приложение, собранное на 1.15.0.0, работает нормально. На всякий случай:
- Заполнение списка из файла в архиве (Android)
-
Заполнение списка из файла в архиве (Android)
Вижу, что в заказах, но на всякий случай: 2 задачи из трёх точно решаемы самостоятельно, причём довольно легко и быстро. 1. Download file 2. Zip/Unzip (+ password) + 3 часть описания (предыдущие 2 найти можно там же) 3. С парсингом csv, думаю, тоже особых проблем возникнуть не должно Делов на час-два, всё равно ведь рано или поздно придётся разбираться 😉 p.s. Примеры упаковки/распаковки:
- WebRTC