Перейти к содержанию
Fire Monkey от А до Я

Alex7wrt

Пользователи
  • Постов

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

  • Посещение

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

    31

Активность репутации

  1. Like
    Alex7wrt отреагировална Brovin Yaroslav в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  2. Like
    Alex7wrt получил реакцию от HyperZen в Android. Форма не на весь экран по вертикали.   
    Уточнение: после обновления до 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) -->  
  3. Like
    Alex7wrt получил реакцию от Евгений Корепов в OnMouseEnter срабатывает при каждом перемещении мыши по контролу   
    Так происходит потому что вы делаете проверку с помощью ShowMessage. При этом панель теряет фокус и любое движение мыши над ней снова вызывает OnMouseEnter.
    Проверяйте так: добавьте на форму компонент TText  и в обработчике панели OnMouseEnter напишите:
    text1.Text:=text1.Text+#13+'asdasd'; Вы увидите, что событие срабатывает корректно
  4. Like
    Alex7wrt отреагировална dnekrasov в FMX Form   
    Не за что.
    Маленькое уточнение - это хорошо работает только если один монитор. Вообще правильнее эмулировать максимизацию окна следующим образом:
    SetBounds(Screen.DisplayFromRect(Bounds).WorkAreaRect);  
  5. Like
    Alex7wrt получил реакцию от Anatoliy в OnMouseEnter срабатывает при каждом перемещении мыши по контролу   
    Так происходит потому что вы делаете проверку с помощью ShowMessage. При этом панель теряет фокус и любое движение мыши над ней снова вызывает OnMouseEnter.
    Проверяйте так: добавьте на форму компонент TText  и в обработчике панели OnMouseEnter напишите:
    text1.Text:=text1.Text+#13+'asdasd'; Вы увидите, что событие срабатывает корректно
  6. Like
    Alex7wrt получил реакцию от Barbanel в Android. Форма не на весь экран по вертикали.   
    Для того, чтобы работало "из коробки", добавьте в файле манифеста в секции Activity строку:
       <meta-data android:name="android.max_aspect" android:value="2.1" />
    Где 2.1 -максимальное соотношение сторон, поддерживаемое приложением. Можно заменить другим числом
  7. Like
    Alex7wrt получил реакцию от Hangar-18 в Android. Форма не на весь экран по вертикали.   
    Для того, чтобы работало "из коробки", добавьте в файле манифеста в секции Activity строку:
       <meta-data android:name="android.max_aspect" android:value="2.1" />
    Где 2.1 -максимальное соотношение сторон, поддерживаемое приложением. Можно заменить другим числом
  8. Like
    Alex7wrt получил реакцию от ENERGY в Android. Форма не на весь экран по вертикали.   
    Для того, чтобы работало "из коробки", добавьте в файле манифеста в секции Activity строку:
       <meta-data android:name="android.max_aspect" android:value="2.1" />
    Где 2.1 -максимальное соотношение сторон, поддерживаемое приложением. Можно заменить другим числом
  9. Thanks
    Alex7wrt получил реакцию от Hangar-18 в Android. Форма не на весь экран по вертикали.   
    У меня была похожая ситуация с Redmi 5 и Redmi Note 5
    Попробуйте зайти на телефоне в Настройки - > Безграничный экран - > Полноэкранный режим, и активировать полноэкранный режим для этого приложения
  10. Like
    Alex7wrt отреагировална x11 в Как использовать камеры в 3D-приложении FireMonkey с помощью Delphi   
    How to Use Cameras in a FireMonkey 3D Application with Delphi
    https://www.youtube.com/watch?v=bjflkb1GzaM
     
    может кому пригодится
  11. Like
    Alex7wrt отреагировална IVGSoft в поточная загрузка картина не работает Android   
    Ну, во первых, не fot.LoadFromStream, а
    tb.LoadFromStream(fot);
    И еще рекомендую добавить перед этим такую строчку
    fot.position := 0;
  12. Like
    Alex7wrt отреагировална Tumaso в Как сделать форму с компонентами под все разрешения?   
    При запуске приложения определяете текущее разрешение, программно вычисляете размеры и положения компонент и программно применяете их. При OnResize у формы всё пересчитываете..
  13. Like
    Alex7wrt отреагировална krapotkin в Как создать диаграмму из бд?   
    нет никакого подключения
    просто в цикле по датасету создаете точки в сериях
    никакой автоматики. все вручную
  14. Like
    Alex7wrt отреагировална sinuke в [Apple store] Guideline 4.2.2 - Design - Minimum Functionality   
    Ну может сделать ленту с акциями и скидками... А также, при просмотре детализации по акции сделать что-то типа "Принять участие / Записаться и т.д."
  15. Like
    Alex7wrt отреагировална Barbanel в Как в Delphi XE3 открыть word документ ?   
    Лично мне неизвестно как встроить MSWord в свою форму.
    Просто открыть MSWord и отобразить в нем документ - можно.
    Запустить MSWord, не показывать его окно, считать определенный текст (как строку), и отобразить этот текст на форме (без средств редактирования MSWord) тоже можно.
    Как встроить в свою форму - мне неизвестно.
    Существуют платные компоненты для редактирования doc-файлов, но их возможности не такие обширные как в MSWord.
    Вам точно нужно именно это? Это задача вобщем-то не совсем тривиальная, хотя и решимая.
    Может вы скажете что от вас требуется и мы подскажем альтернативы?
  16. Like
    Alex7wrt отреагировална ENERGY в Ориентация SDK на Android 8 и выше   
    Тема как то неправильно названа. Я подумал про ориентацию экрана. Назовите пожалуйста лучше как "Targeting SDK на Android 8" или "Целевая версия SDK на Android 8"
  17. Like
    Alex7wrt получил реакцию от ENERGY в Ориентация SDK на Android 8 и выше   
    Уважаемый X11, пожалуйста, не вводите людей в заблуждение. По теме обязательного использования последних API на форуме уже есть несколько тем.
    С августа разрешена публикация новых приложений только с API не ниже 26 (Android 8.0), а с ноября для обновлений.
    Для того, чтобы приложение соответствовало новым требованиям, в файле мвнифеста нужно поменять параметр TargetSDKVersion на 26 или выше.
    Google никого банить не будет. Приложение просто не пропустят на публикацию. Уже сейчас при размещении в Google Play приложения с более ранней версией SDK, появляется предупреждение, что скоро публиковать можно только с SDK 26 и выше.
    Существующие же приложения никто трогать не будет.
  18. Like
    Alex7wrt отреагировална krapotkin в Мультивопрос по мобильным платформам: хранение изображений, загрузка изображений из сети, правильная организация приложения (создание форм, фреймов, объектов)   
    я наоборот, за фреймы. логику гораздо проще строить. Да и переключение форм свайпом вправо влево не сделать, например. Форм пара тройка достаточно.
    По приведенному примеру - компоненты создавать в потоке - не только бесполезно но и вредно. 
    Создавать в главном потоке. К счастью, экран мобилы невелик, и если создавать то, что реально нужно прямо сейчас, вполне все норм
    про картинки и прочее - нужно понимать, что золотой пули нет. если вы превысите разумные пределы по памяти, ваше приложение грохнется. так что использовать файлы или нет - решение принимать по месту прописки
    со скроллом - если разобраться с ListView, то достаточно несложно делать любые раскладки. одно, что приходится кодить, вместо привычного накидывания компонентов
    Насчет DisposeOf. Уничтожение производится автоматически, поэтому вызывайте FreeAndNIL и не парьтесь. Только перед этим для компонентов например надо сделать Parent := NIL
    Уничтожение не должно производиться вами. Деструктор будет вызыван без вас, когда вы затрете все ссылки на ваш объект.
  19. Like
    Alex7wrt отреагировална Barbanel в Мультивопрос по мобильным платформам: хранение изображений, загрузка изображений из сети, правильная организация приложения (создание форм, фреймов, объектов)   
    Я бы сам присоединился к такому вопросу.
    Советовать не стану, расскажу лишь как мы сделали.
    Иконки для кнопок, их цвета и прочее что относится к внешнему виду/интерфейсу мы вставили в стили, конкретнее - прямо на битмап темы приложения.
    Изображения же, типа там фоток, примеров из "что нового" вставили в imageList, причем все используемые imageList вынесены в отдельный DataModule.
    Мы получаем только текст и сразу парсим, соотв. храним в оперативке, нам нет смысла писать на диск. 
    Тут можно разводить холивары.
    Мы перенесли опыт настольной разработки - создаем формы по мере необходимости. Плюс очевиден, но он же автоматически имеет и минус - когда вам эта форма понадобится, ее создание занимает время, и иногда это заметно.
    В целом у нас одна главная форма с табконтролом и отключенными вкладками, по мере необходимости мы переключаем табы и их порядок, это позволяет анимировать переходы с одной "формы" т.е. вкладки на другую.
    Ембаркадеро советует использовать object.DisposeOf() вместо object.Free() так и делаем. Минусов не обнаружили (или не заметили).
    Попробуйте поэкспериментировать с другими контролами, ListView или ListBox. Они все позволяют использовать стили для элементов списка (имхо, могу ошибаться).
    Мы используем TListBox (что не рекомендуется данным форумом) и кидаем стили на элементы списка (лид сказал оставляем так, потом будем решать).
    Ну, это не запрещено)))
    Попробуйте дженерики, удобная фича. Пример нужен?
     
    PS. это все имхо, я с удовольствием послушаю коллег.
  20. Like
    Alex7wrt получил реакцию от Ivan B. в Индикатор замирает во время создания объектов в ScrollBox'е   
    Дело в том, что индикатор отрисовывается в основном потоке. По видимому ваша процедура также выполняется в основном потоке. Чтобы не было подтормаживаний, выполняйте фоновые операции в отдельном потоке, а при необходимости отрисовать какой-нибудь визуальный компонент, пользуйтесь Synchronize или Queue.
     
  21. Like
    Alex7wrt получил реакцию от Ivan B. в Индикатор замирает во время создания объектов в ScrollBox'е   
    По моему, все равно.  Как вам удобнее.
    Я так понимаю, что TTask разработаны с прицелом на параллельные вычисления, когда нужно выполнять однотипные операции в нескольких потоках. Для этого дела там имеются опции по ожиданию выполнения остальных потоков и т.д.
    TTask также удобен тем, что его можно сразу использовать, не нужно объявлять поток.
    TThread удобен, если нужно выполнить определенный набор действий по завершению потока (с помошью OnTerminate). Может и в TTask такое есть, не знаю
    Лично я просто привык использовать TThread 
  22. Like
    Alex7wrt отреагировална krapotkin в Выполнение операции после скрытия меню   
    есть более интересный и по-мне, более правильный способ
    по нажатию в меню не сразу выполняете что-то, а ЗАПИСЫВАЕТЕ действие, которое ВЫПОЛНИТСЯ по событию закрытия мультивью
    тогда реакция наступает визуально правильная и дальше крутите колеса, запускайте потоки и все такое
  23. Like
    Alex7wrt отреагировална Barbanel в Выполнение операции после скрытия меню   
    Процедура Invalidate не перерисовывает форму немедленно, она лишь добавляет сообщение на перерисовку в очередь сообщений.
    Соотв. форма перерисуется когда не будет других событий в очереди, в данном случае - после всех длительных операций или после вызова .ProcessMessages
  24. Like
    Alex7wrt отреагировална ENERGY в IOS: Exception class 6   
    Мне кажется нужно вообще исключить iPhone 5 и UBF, и компилить только на x64 - 5s или выше, чтобы исключить другие баги.
    Вообще Universal Binary File мне не нравится, т.к. файл получается очень большой, под 30 мб - в 2 раза больше.
    Я компилирую только под x64. Делать неудобства остальным пользователям (большинству), в виде большого размера не хочу. iPhone 5 уже отошли.
  25. Like
    Alex7wrt отреагировална ENERGY в Как создать animation bitmap из списка картинок. How to create an animation bitmap from a list of images, to use in TBitmapListAnimation.   
    How to create an animation bitmap from a list of images to use in TBitmapListAnimation.
    Простенькая программка, для создания анимационной картинки. Уже откомпилирована в папке Win32 > release.
    Указываем папку с PNG картинками, указываем кол. колонок. 
    Результат - png файл, который можно добавить в TBitmapListAnimation появляется в той же папке. 
    Raws и FramesCount (= Animation Count)  прога показывает на форме, эти цифры потом вводим в TBitmapListAnimation.
    Код делал на скорую руку, не работает с прозрачными картинками (точнее я не проверял).
     
    Как подготовить список картинок - используйте IrfanView, откройте в нем картинку, нажмите англ. клавишу B  - он покажет массу опций для пакетного конвертирования, изменения размеров, обрезки картинок и множество другого.
     
    https://drive.google.com/file/d/1CFymsKtZ6fniBDZgQg5nXHeqo-ProTf3
     
    P.s. Не используйте на iOS анимацию, в которой больше 60 - 70 кадров. Точнее используйте, но подготовьте специальным образом.
     

    MergeBitmapsForBitmapList.7z
×
×
  • Создать...