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

Tumaso

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

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

  • Посещение

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

    41

Весь контент Tumaso

  1. Ммм, а как же тогда вы собираетесь отправлять приложение на публикацию в Google Play, если не проверяете работу на реальном аппарате?
  2. Delphi Rio: 1. Target Platform -> Android 2. Project -> Build 3. Project -> Deploy В итоге apk для android 5/6/7/8/8.1/9 создан
  3. У меня было нечто похожее в самих виндах, и было связано с появлением виртуальной клавиатуры - в приложении фокус переводился на строку ввода, через пару секунд появлялось окно клавиатуры, а у приложения фокус терялся. И так каждый раз при переводе фокуса на строку ввода. Но там был мой косяк, я на всякий случай в событии OnEnter у строки ввода принудительно отображал виртуальную клавиатуру, в андроид и ios это работало без проблем, а вот в windows приводило к вышеописанному эффекту. И что интересно, окно виртуальной клавы было видно не всегда, видимо появлялось за пределами десктопа.
  4. TMediaPlayer в android и ios вообще никогда стабильно не работал, и targetSDK тут даже не причем. Он кривой сам по себе изначально, смиритесь. Стабильное решение медиаплейера есть в библиотеке alcinoe, но там поддерживается пока только tokyo, поддержка rio будет позже.
  5. SOFT FOR YOU, что то ты ни одного проекта до ума не довел)))
  6. @Anatoliy разобрался? после Google Play быстро забываешь, что в AppStore (как и во всех продуктах Apple) ВСЁ через заднее место. Для уже опубликованных приложений в appstore обновление получается нужно через создание новой версии делать, а не через удаление текущей сборки.
  7. У меня заказчик в дизайне предусмотрел эту кнопку, вот думаю как извернуться, чтобы она работала также, как "домой"))
  8. Пользователь нажимает кнопку Закрыть и приложение должно уйти в фон. Потом когда юзер попытается программу запустить, она продолжит работу с того же места, с какого ушла в фоновый режим
  9. Подскажите, как можно программно отправить приложение в IOS на задний фон? В Android это делается вызовом TAndroidHelper.Activity.moveTaskToBack(True), а для ios решение найти не могу. Halt(0) для завершения не подходит.
  10. а новая версия у тебя точно залита?
  11. @Anatoliy сначала удалите текущую версию - мышкой подвести к колонке даты/времени текущей сборки, появится круглая красная иконка удаления. нажать и сборка удалится. после этого выбрать новую сборку - там и будет ваша новая версия. выбираете ее и отправляете на проверку
  12. @Anatoliy сорри, я видимо наверное не правильно понял тебя. В консоли AppStore, когда загружаешь новую версию, нужно старый пакет удалить и там же выбрать пакет с новой версией. После этого отправляешь на проверку. После проверки, если она будет успешна, приложение обновится в магазине AppStore. Клиентам же оно попадет не сразу, тут нужно будет просто подождать.
  13. Просто нужно подождать.
  14. Ну почему же невозможно? Считываем параметры (включая модели и серийники) материнки, процессора, видеокарт, жестких дисков и сетевых карт. Вполне себе можно на основании всех этих параметров уникально идентифицировать комп, даже если какие то комплектующие изменились в процессе эксплуатации. P.S. С Windows.System.Profile не работал
  15. Tumaso

    Http client server

    вы хотите, чтобы чат был написан для вас без вашего участия?)
  16. Ничего личного, но само название ErrorSoft как бы намекает....
  17. Tumaso

    Gif File

    А исправленный вариант под Windows корректно ли отображает вашу проблемную гифку???
  18. @Yuriy2606, нужно динамически запрашивать необходимые разрешения у пользователя. Наверное, правильнее будет установить 10.3 CE, там поддержка получения разрешений идет из коробки (модуль System.Permissions). Плюс 10.3 поддерживает android 9 Что касается получения ключа, то проверьте, что у вас в hosts и нет ли блокировки доступа bds.exe к Интернет на уровне антивируса
  19. @Ллирик, попробуйте полностью переустановить SDK
  20. Хороший вопрос. Отрисовка в FMX это весьма хитрая штука. Как вариант (кривой если честно, тем не менее) - отображайте TControl вне границ экрана, тогда и MakeScreenshot корректно отработает, и мерцать на экране не будет.
  21. Удалите вручную приложение с телефона перед установкой новой версии. Можно еще попробовать установить -cleaninstall в Run->Parameters, далее в появившемся диалоге в дереве слева выбираете Debugger, справа в поле Parameters и указываете -cleaninstall
  22. Попробуй вместо своей функции вызвать ACntrl.MakeScreenshot
  23. const /// <summary> /// CRC32 table /// </summary> CRC32_TABLE: array[Low(Byte)..High(Byte)] of DWORD = ( $00000000, $77073096, $EE0E612C, $990951BA, $076DC419, $706AF48F, $E963A535, $9E6495A3, $0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988, $09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91, $1DB71064, $6AB020F2, $F3B97148, $84BE41DE, $1ADAD47D, $6DDDE4EB, $F4D4B551, $83D385C7, $136C9856, $646BA8C0, $FD62F97A, $8A65C9EC, $14015C4F, $63066CD9, $FA0F3D63, $8D080DF5, $3B6E20C8, $4C69105E, $D56041E4, $A2677172, $3C03E4D1, $4B04D447, $D20D85FD, $A50AB56B, $35B5A8FA, $42B2986C, $DBBBC9D6, $ACBCF940, $32D86CE3, $45DF5C75, $DCD60DCF, $ABD13D59, $26D930AC, $51DE003A, $C8D75180, $BFD06116, $21B4F4B5, $56B3C423, $CFBA9599, $B8BDA50F, $2802B89E, $5F058808, $C60CD9B2, $B10BE924, $2F6F7C87, $58684C11, $C1611DAB, $B6662D3D, $76DC4190, $01DB7106, $98D220BC, $EFD5102A, $71B18589, $06B6B51F, $9FBFE4A5, $E8B8D433, $7807C9A2, $0F00F934, $9609A88E, $E10E9818, $7F6A0DBB, $086D3D2D, $91646C97, $E6635C01, $6B6B51F4, $1C6C6162, $856530D8, $F262004E, $6C0695ED, $1B01A57B, $8208F4C1, $F50FC457, $65B0D9C6, $12B7E950, $8BBEB8EA, $FCB9887C, $62DD1DDF, $15DA2D49, $8CD37CF3, $FBD44C65, $4DB26158, $3AB551CE, $A3BC0074, $D4BB30E2, $4ADFA541, $3DD895D7, $A4D1C46D, $D3D6F4FB, $4369E96A, $346ED9FC, $AD678846, $DA60B8D0, $44042D73, $33031DE5, $AA0A4C5F, $DD0D7CC9, $5005713C, $270241AA, $BE0B1010, $C90C2086, $5768B525, $206F85B3, $B966D409, $CE61E49F, $5EDEF90E, $29D9C998, $B0D09822, $C7D7A8B4, $59B33D17, $2EB40D81, $B7BD5C3B, $C0BA6CAD, $EDB88320, $9ABFB3B6, $03B6E20C, $74B1D29A, $EAD54739, $9DD277AF, $04DB2615, $73DC1683, $E3630B12, $94643B84, $0D6D6A3E, $7A6A5AA8, $E40ECF0B, $9309FF9D, $0A00AE27, $7D079EB1, $F00F9344, $8708A3D2, $1E01F268, $6906C2FE, $F762575D, $806567CB, $196C3671, $6E6B06E7, $FED41B76, $89D32BE0, $10DA7A5A, $67DD4ACC, $F9B9DF6F, $8EBEEFF9, $17B7BE43, $60B08ED5, $D6D6A3E8, $A1D1937E, $38D8C2C4, $4FDFF252, $D1BB67F1, $A6BC5767, $3FB506DD, $48B2364B, $D80D2BDA, $AF0A1B4C, $36034AF6, $41047A60, $DF60EFC3, $A867DF55, $316E8EEF, $4669BE79, $CB61B38C, $BC66831A, $256FD2A0, $5268E236, $CC0C7795, $BB0B4703, $220216B9, $5505262F, $C5BA3BBE, $B2BD0B28, $2BB45A92, $5CB36A04, $C2D7FFA7, $B5D0CF31, $2CD99E8B, $5BDEAE1D, $9B64C2B0, $EC63F226, $756AA39C, $026D930A, $9C0906A9, $EB0E363F, $72076785, $05005713, $95BF4A82, $E2B87A14, $7BB12BAE, $0CB61B38, $92D28E9B, $E5D5BE0D, $7CDCEFB7, $0BDBDF21, $86D3D2D4, $F1D4E242, $68DDB3F8, $1FDA836E, $81BE16CD, $F6B9265B, $6FB077E1, $18B74777, $88085AE6, $FF0F6A70, $66063BCA, $11010B5C, $8F659EFF, $F862AE69, $616BFFD3, $166CCF45, $A00AE278, $D70DD2EE, $4E048354, $3903B3C2, $A7672661, $D06016F7, $4969474D, $3E6E77DB, $AED16A4A, $D9D65ADC, $40DF0B66, $37D83BF0, $A9BCAE53, $DEBB9EC5, $47B2CF7F, $30B5FFE9, $BDBDF21C, $CABAC28A, $53B39330, $24B4A3A6, $BAD03605, $CDD70693, $54DE5729, $23D967BF, $B3667A2E, $C4614AB8, $5D681B02, $2A6F2B94, $B40BBE37, $C30C8EA1, $5A05DF1B, $2D02EF8D ); /// <summary> /// Вычисление кода CRC32-строки /// </summary> /// <param name="ASource"> /// Строка, код CRC32 которой необходимо вычислить /// </param> /// <returns> /// Вычисленный код CRC32 /// </returns> function CalcCrc32(const ASource: string): Cardinal; var I: Integer; {$IF SizeOf(Char) = 1} LValue8: Byte; {$ELSE} LValue16: Word; {$ENDIF} LIndex: Byte; begin Result := $FFFFFFFF; if Length(ASource) > 0 then begin for I := Low(ASource) to High(ASource) do begin {$IF SizeOf(Char) = 1} LValue8 := Byte(ASource[I]); LIndex := (Result xor LValue8) and $000000FF; Result := (Result shr 8) xor CRC32_TABLE[LIndex]; {$ELSE} LValue16 := Word(ASource[I]); // 1 байт символа LIndex := (Result xor (LValue16 and $00FF)) and $000000FF; Result := (Result shr 8) xor CRC32_TABLE[LIndex]; // 2 байт символа LIndex := (Result xor ((LValue16 and $FF00) shr 8)) and $000000FF; Result := (Result shr 8) xor CRC32_TABLE[LIndex]; {$ENDIF} end; end; end; Работает на всех платформах, Indy не требуется.
×
×
  • Создать...