Alex7wrt

Пользователи
  • Публикаций

    487
  • Зарегистрирован

  • Посещение

  • Победитель дней

    18

Alex7wrt стал победителем дня 8 октября

Alex7wrt имел наиболее популярный контент!

Информация о Alex7wrt

  • Звание
    Продвинутый пользователь

Информация

  • Пол
    Мужчина

Посетители профиля

1 148 просмотров профиля
  1. Alex7wrt

    Размеры формы на разных устройствах

    var ScreenService: IFMXScreenService; scale: single; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then scale:=ScreenService.GetScreenScale; end; Эту фишку придумали не разработчики FireMonkey. Коэффициент масштаба экрана используется и в iOS, и в Android. Введен он для более удобного перевода ПО под новые экраны. Смысл в том, что оперируя тем же логическим размером экрана, ПО автоматически отрисовывает изображение на другом физическом разрешении.
  2. Alex7wrt

    Реализовать рейтинг

    Да все норм. Мне самому рисунок не очень понравился )) Рисовал его в ворде года два назад, когда хотел понять, как удобнее рисовать звезду. Когда понял, то рисунок уже не было смысла доводить до ума, так что таким он и остался. Но вот щас все-таки решил доделать. Исправил изображение )
  3. Alex7wrt

    Реализовать рейтинг

    Не приходилось )) Это рисунок звезды вызывает такие ассоциации? )
  4. Alex7wrt

    Реализовать рейтинг

    Надеюсь, что в предыдущем посте помог ответить на первую часть вопроса. Если каждая звезда организована отдельным компонентом, то, соответственно, вы всегда можете узнать по какой звезде был клик и раскрасить все звезды до нее (включительно) в желтый цвет. Ниже скинул программку для герерации TPathData звезды, может пригодится star generator.zip Можно использовать генерируемую строку TPathData, или использовать код procedure star; var i: byte; a1,a2: single; begin Path.Clear; Path.MoveTo(PointF(0,-r)); a1:=Pi/5-Pi/2; a2:=-Pi/2; for i:=1 to 5 do begin Path.LineTo(PointF((r*cos(Pi/5)-d)*cos(a1+(i-1)*2*Pi/5),(r*cos(Pi/5)-d)*sin(a1+(i-1)*2*Pi/5))); Path.LineTo(PointF(r*cos(i*2*Pi/5+a2),r*sin(i*2*Pi/5+a2))); end; Path.ClosePath; path.Translate(r*cos(Pi/10),r); end; Где R - радиус описанной окружности вокруг звезды. В програме он равен 100. d - Разность радиусов внешней и внутренней окружности согласно рисунка
  5. Alex7wrt

    Реализовать рейтинг

    Не совсем понял, какой рейтинг имеется ввиду. Внутренний рейтинг в приложении? Добавить 5 переменных целочисленного типа, которые будут хранить количество выставленных оценок от 1 до 5. С помощью TPathData нарисовать звезду. Создать 5 компонентов TPath и в обработчике OnTap или OnClick каждого увеличивать соответствующую переменную на единицу. И для оценки рейтинга вычислять среднее арифметическое: (a1 + a2*2 + a3*3 + a4*4 + a5*5)/(a1 +a2 +a3 + a4 + a5)
  6. Спасибо за ответ. Правильно ли я вас понял, что ваши приложения с TargetSDK 26 именно устанавливают новые пользователи с Android 5.1 и ниже, а не обновляют уже установленное приложение? И как насчет TargetSDK 26 или 27 - будет ли разница в этом плане?
  7. Добрый день Знаю, что с ноября в Google Play можно обновлять приложения только для TargetSDK не ниже 26. Но до этого момента этой функцией я не пользовался, оставляя в Манифесте все по дефолту, то есть и minSDK и targetSDK равны 14. Понятно, что от этого никуда не уйти, но в связи с этим меня больше всего интересует вопрос, если я обновлю приложение с targetSDK равным 26 или 27, смогут ли это приложение установить новые пользователи? При загрузке версии в Google Play появляется предупреждение, но из него ответ конкретно на мой вопрос не ясен. На данный момент около 25% пользователей, ежедневно устанавливающих данное приложение, имеют SDK 22 (Android 5.1) и ниже. И меня интересует, смогут ли такие пользователи устанавливать версию приложения, если я обновлю его до targetSDK 26 или 27? И также, есть ли разница, если выставить targetSDK 26 или 27? P.S. В данном приложении не используются никакие разрешения. Только доступ в интернет
  8. Такого обработчика нет. Можете написать аналогично обработчику OnResize в FMX.Controls.pas. Для этого в тех методах, которые вызывают изменение положения контрола, нужно проставить соответствующие маркеры, чтобы менять значение свойства типа: property OnChangePosition: TNotifyEvent read FOnChangePosition write FOnChangePosition;
  9. Уточнение: после обновления до MIUI 10 снова появилась черная полоса снизу. При этом в сторонних приложениях ее не наблюдалось. Следовательно, приведенное выше решение неполноценно. Решение: добавить строку android:resizeableActivity="true" в секцию Activity <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:resizeableActivity="true" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <meta-data android:name="android.max_aspect" android:value="2.1" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) -->
  10. Так происходит потому что вы делаете проверку с помощью ShowMessage. При этом панель теряет фокус и любое движение мыши над ней снова вызывает OnMouseEnter. Проверяйте так: добавьте на форму компонент TText и в обработчике панели OnMouseEnter напишите: text1.Text:=text1.Text+#13+'asdasd'; Вы увидите, что событие срабатывает корректно
  11. Ответил в личку, так как это уже другая тема
  12. Да. Вот мой манифест: <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <meta-data android:name="android.max_aspect" android:value="2.1" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) -->
  13. Хм... Создал пустой проект, добавил эту строку - приложение на весь экран,убрал строку - чёрная полоса снизу. Пока не пойму,почему у вас не получается
  14. Файлы проекта находятся в той же папке, что и AndroidManifest.template.xml?