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

Камышев Александр

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

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

  • Посещение

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

    9

Сообщения, опубликованные Камышев Александр

  1. extern "C" int FMXmain()
    {
    	try
    	{
    		GlobalUseDXInDX9Mode = true;
    		Application->Initialize();
    		Application->CreateForm(__classid(TdmSUHttpClient), &dmSUHttpClient);
    		Application->CreateForm(__classid(TForm1), &Form1);
    		Application->Run();
    	}

    не заметил тормозов и проблем, работает вроде,

    это конечно не графический движок современной видеоигры...

    по теме должно помочь

  2. Берлин не виноват, ошибку возвращает WinAPI, кроме драйверов видео и DirectX ничего и не сделать, разве что DLL попробовать подсунуть.

    В oldschool VCL не было обращений к directx, там были GDI и GDIplus,

    а FMX видимо графику сразу по-взрослому рисует в 3d.

  3. FMX TSpinBox, windows, android. 

    Пользователь вводит значения с клавиатуры, поле Value компонента при этом не меняется до нажатия Enter.

    Если не нажать ввод, после потери фокуса значения останутся прежними.

    При этом если вводить текст в TEdit его поле Text изменяется сразу, без дополнительного подтверждения (не надо Enter тыкать).

    У пользователя когнитивный диссонанс, что можно сделать?

  4. 2 минуты назад, krapotkin сказал:

    OFF: угу. на андроиде походишь. сегодня в очередной раз ходил-ходил, не выходил...

    а в чем проблема с пошаговой отладкой под андроид?

    PHP на удаленном юниксе в NetBeans по шагам отладка настраивается, а тут в винде устройство висит на шнуре и нельзя? 

    в XE7 еще были проблемы, в XE10 дебаггер православный

  5. 1 час назад, zekelive сказал:

    пробовал в потоке. вызываю его в событии onshow. реакция на это такая же, как бы я это делал в onshow. Хотела еще добавить что картинки должны загрузиться И после этого выполниться анимация показа этих картинок. Интересно,  именно эта анимации может как раз и вызывать проблемы?

     

    Дебаггер не используете что ли? Тупо брикпоинт на OnShow и по шагам идти до ошибки - F7,F8,F9 в помощь

  6. 14 часов назад, Kitty сказал:

    Доступ к планшету х86 у меня будет завтра. Ради эксперимента решила попробовать новый АРК с новыми libcrypto.so и libssl.so на своем планшете arm.

    Искренне пологая, что письмо не должно уйти т.к. файлы libcrypto.so и libssl.so взяты для х86. Очень странно но письмо ушло. Не понятно почему работает на arm?

    Я был удивлен когда библиотеки вообще собрались, не прошло и часа... Идеально будет если они будут работать и на atom и на arm

  7. да что ж такое... тогда радикально, пробовать грузить arm библиотеки, по исключению пробовать грузить atom

    еще вариант архитектуру в настройки приложения, пусть пользователь настраивает:)

  8.  

    у ZuBy есть DeviceInfo, может он подскажет. http://fire-monkey.ru/topic/1762-deviceinfo-modul-dlya-polucheniya-informacii-o-devayse/?do=findComment&comment=14057 - очень полезная разработка

    есть System.SysUtils.TOSVersion.TArchitecture, в винде показывает х64, в андроид с arm у меня пустые поля, на x86 наверно покажет. http://docwiki.embarcadero.com/Libraries/XE5/en/System.SysUtils.TOSVersion.TArchitecture

    в реализации можно так: 

    String docs_path = System::Ioutils::TPath::GetDocumentsPath();
    if ( atom )
    	IdOpenSSLSetLibPath( docs_path + "/lib_atom/" );
    else if ( arm )
    	IdOpenSSLSetLibPath( docs_path + "/lib_arm/" );
    else {}

    отдельный APK для x86 - неизящно

     

     

     

     

  9. 1 час назад, Kitty сказал:

    Подскажите, как правильно? Спасибо.

    скачал в c:/openssl-android-master исходники,

    скачал AndroidNDK в d:\ndk\

    исправил jni/Application.mk:

    APP_PROJECT_PATH := $(shell pwd)
    APP_BUILD_SCRIPT := c:/openssl-android-master/Android.mk
    APP_ABI := x86

    далее в cmd:

    C:\Windows\system32>cd c:\openssl-android-master

    c:\openssl-android-master>d:\ndk\ndk-build
    process_begin: CreateProcess(NULL, pwd, ...) failed.
    Android NDK: WARNING:c:/openssl-android-master/crypto/Android.mk:crypto_
    LOCAL_LDLIBS is always ignored for static libraries
    [x86] Compile        : crypto <= cryptlib.c
    c:/openssl-android-master/crypto/cryptlib.c: In function 'CRYPTO_THREADI
    t':
    c:/openssl-android-master/crypto/cryptlib.c:503:34: warning: passing arg
    of 'CRYPTO_THREADID_set_pointer' discards 'volatile' qualifier from poin
    et type
      CRYPTO_THREADID_set_pointer(id, &errno);
                                      ^
    c:/openssl-android-master/crypto/cryptlib.c:431:6: note: expected 'void
    rgument is of type 'volatile int *'
     void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr)
          ^
    [x86] Compile        : crypto <= mem.c
    [x86] Compile        : crypto <= mem_clr.c
    [x86] Compile        : crypto <= mem_dbg.c

    минут 10 уже компилит, жду результата

  10. то что Delphi mobile compilers не работают с AnsiString - это проблема пользователей Delphi mobile compilers и минус Delphi, никак не Андроид. 

    AnsiString - удобный инструмент для работы в CBuilder с ASCI и cp1251 в частности, к примеру заголовки http пакета по стандарту ASCI.

  11. в Berlin FMX нет AnsiString? да как так то, не может быть, в Seattle же есть...

    со строками есть момент такой, сразу код, так понятней:

    host = url;
    int pos = host.AnsiPos( "://" );
    #ifdef WIN32
      if ( pos ) host.Delete( 1, pos + 2 );
    #endif
    #ifdef __ANDROID__
      if ( pos ) host.Delete( 0, pos + 2 );
    #endif

    в общем начало строки с 1 либо с 0

  12. что ж теперь не пользоваться indy? ssl и в других проектах пригодится, вот тут про сборку https://habrahabr.ru/company/intel/blog/271013/

    Библиотеки OpenSSL


    Рассмотрим сборку библиотек OpenSSL для Android-устройств, построенных на базе архитектуры x86.
     

    Предварительная подготовка


    Для дальнейшей работы нам понадобится следующее.
     

    1. Главный компьютер, работающий под управлением ОС Windows 7 или более поздней.
       
    2. Так как библиотеки OpenSSL написаны на чистом C, для сборки будет достаточно Android NDK, в который встроена поддержка для кросс-компиляции библиотек для заданных платформ (ARM, x86 и других).


    Исходный код библиотек OpenSSL для Android можно загрузить из репозиториев eighthave или guardianproject.
     

    Сборка для платформы x86


    Выбрать целевую платформу сборки можно так же, как и для любого другого Android-приложения, используя установки Application Binary Interface (ABI). В нашем случае в файле jni/Application.mk должно присутствовать следующее:
     

    APP_ABI := x86


    Итак, после того, как NDK загружен и установлен, исходный код Android OpenSSL так же загружен и размещён в локальной папке (например, в C:\openssl-android-master), для сборки библиотек нужно будет сделать следующее.
     

    1. Откройте окно командной строки (cmd.exe).
    2. Перейдите в папку, где расположены файлы OpenSSL для Android. Например, такой командой:


    Не забудьте указать для сборки целевую платформу x86:
     

    APP_ABI := x86


    Выполните команду NDK для запуска сборки:
     

    C:\openssl-android-master > ndk-build


    После её успешного завершения будут созданы OpenSSL-библиотеки libssl и libcrypto, расположенные, в нашем случае, здесь:
     

    C:\openssl-android-master\libs\x86\libcrypto.so
    C:\openssl-android-master\libs\x86\libssl.so
  13. 9 минут назад, Alesk сказал:

    такой способ не идеален

    Хранить в реляционной БД медиафайлы тоже ни разу не идеально, скорее жуткий моветон.

    Если качать с сервера файлы не алё, то вот здесь обсуждался вариант с менеджером ресурсов http://fire-monkey.ru/topic/31-vklyuchenie-svoih-faylov-v-prilozhenie/?do=findComment&comment=83

  14. 16 часов назад, POV сказал:

    Накидал компоненты на форму как тебе нравится и задал всем это свойство.

    При изменении размеров формы всё пропорционально масштабируется.

    Align = Scale - удачный выбор, в oldschool Delphi и CBuilder такого не было, в Anchors выставляли руками масштабирование.

    Кстати, если кнопки надо изменять только в ширину, то это в Anchors

  15. По всему не установлены SDK Intel x86, соответственно проблема не в них. 

    Анекдот. При головных болях Врач пациенту: бросай курить, Пациент: я не курю, Врач: попробуй закурить.

    1. поискать libssl под х86,  пишут что они где-то уже есть в системе у GT.

    2. попробовать обновить библиотеки SDK для x86, т.е. если нельзя удалить х86 то надо их поставить :D

    применить метод научного тыка:)

  16. на скрине в Remote Path нет строчки  library\lib\x86\, которую надо исключить... непонятно, в  Type это AndroidLibnativeX86File

    тестировалось на CBuilder XE7 и XE10

    APK файл - это zip архив, его открыть, там папка lib, в ней папки armeabi, armeabi-v7a, mips и x86. Вот оттуда удалить x86.

    У меня подозрение что ее там не будет... если нет в deployment

×
×
  • Создать...