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

Лидеры

  1. xenon54

    xenon54

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


    • Баллы

      6

    • Постов

      385


  2. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      5

    • Постов

      2 124


  3. haword

    haword

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


    • Баллы

      2

    • Постов

      535


  4. Belov.V.

    Belov.V.

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


    • Баллы

      2

    • Постов

      69


Популярный контент

Показан контент с высокой репутацией 06.04.2015 во всех областях

  1. image1.bitmap.Canvas.BeginScene(); Image1.bitmap.Canvas.FillText(TRectF.Create(0,0,1000,1000),'1234567890',True,1,[],TTextAlign.Leading); Image1.bitmap.Canvas.EndScene();
    3 балла
  2. Добрый день, Проблема в том, что когда вы вызываете ProcessMessage в OnMouseLeave, то вы по сути прерываете логику обработки Hovered контрола (Тот, что находится под мышкой). То есть вызывая ProcessMessage вы запускаете новый прогон обработки сообщений заново, не закончив предыдущий. В итоге, новый запуск сбрасывает ссылки на объект Hovered. А после возвращения в обратно в первый ProcessMessage Hovered еще используется, но он уже nil. Тут и возникает AV. procedure TCommonCustomForm.SetHovered(const Value: IControl); begin if (Value <> FHovered) then begin if FHovered <> nil then begin FHovered.DoMouseLeave; // <Тут вы вызываете ProcessMessage и после выхода, тут будет nil FHovered.RemoveFreeNotify(Self); end; FHovered := Value; if FHovered <> nil then begin FHovered.AddFreeNotify(Self); FHovered.DoMouseEnter; end; end; end; Если очень хочется использовать ProcessMessage в таком месте, можете добавить проверку на нил, после: FHovered.DoMouseLeave; if FHovered <> nil then FHovered.RemoveFreeNotify(Self);
    2 балла
  3. Добрый день, Эта кнопка считается устаревшей в версиях андроида начиная с 14 (Ice Cream). Система читает ваш манифест и смотрит на MinSdkLevel. Если он меньше 14, то она пытается сэмулировать (Lolipop) и добавить эту кнопку. Чтобы ее убрать, нужно поднять нижнюю границу или таргет версию до 14 в манифесте: <android xmlns:android="http://schemas.android.com/apk/res/android"> <tool-api-level>14</tool-api-level> <manifest> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/> </manifest> </android> В вашем приложении:Открываете файл AndroidManifest.template.xml. Он лежит в папке с вашим проектным файлом (появляется при первой попытке компиляции на Андроид)Меняем значения в теге uses-sdkБыло: <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> Стало: <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> Собираем приложение. Теперь кнопка меню пропадет на новых версиях Андроида.Чтобы при повороте приложение не вылетало на версиях среды до XE8 включительно дополнительно нужно добавить в манифест. Начиная с XE10 правок вносить не надо. Было: <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden" android:launchMode="singleTask"> Стало: <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask">
    2 балла
  4. попробуй повесить обработку нажатых кнопок на форме OnKeyDown и смотри какие коды покажет какая кнопка в Key и KeyChar.
    2 балла
  5. Добрый день, Есть вариант для инфракрасных контроллеров: Либо нужно использовать RemoteController
    1 балл
  6. В IOS, например, чтобы в приложение передавались события нажатия кнопок плеера (плей, стоп, вперед, назад, и т.д.) нужно зарегистрировать обрабочтик событий ремоут контрол, ну и соответственно написать сам обработчик. Мб с ведром тоже самое... Но это лишь предположение.
    1 балл
  7. xenon54

    [TidHTTP] Не срабатывает Timeout

    Выше же написано. Используйте on E : EIdException.
    1 балл
  8. Вячеслав

    [Ресурс] FMXExpress.com

    Думаю, иногда даже лучше давать не ссылку на конкретные статьи, а ссылку на ресурс. Уверен, что некоторым пользователям, особенно начинающим, будет полезно просто иногда просматривать сайты, посвященные FM. К примеру, вот этот: http://www.fmxexpress.com Сайт на английском, но статьи очень доступные, для себя не раз находил интересные материалы.
    1 балл
  9. "... процесс передачи двух событий: картинка+текст в постороннее приложение" Возможно вопрос все же не про два Intent, а как написано выше про Exstra? Если к примеру для отправки по e-mail, то текст и присоединенный файл можно. Вот тут пример реализации: http://fire-monkey.ru/topic/698-otpravka-failov-cherez-namerenie/?p=4918
    1 балл
  10. Например, вот так: {for Delphi XE6/XE7: Add to "uses" module "Androidapi.Helpers"} uses Androidapi.JNI.JavaTypes, FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText; var PackageManager: JPackageManager; VersionPackage,PackageName: JString; begin PackageManager := SharedActivity.getPackageManager; PackageName := SharedActivityContext.getPackageName; VersionPackage := PackageManager.getPackageInfo(PackageName, 0).versionName; Label1.Text := JStringToString(VersionPackage); p.s. Для подобных вопросов, у меня в блоге есть страничка "JNI Code Snippet"
    1 балл
  11. Русский: Привет Отредактировать файл проекта с расширением ".drpoj" Найти <Android_LauncherIcon96> Добавить ниже: <EL_AdMob>true</EL_AdMob> Сохранить файл, открыть проект. English: Hi. 1.Edit project .dproj file 2.Find <Android_LauncherIcon96> 3.Add bottom <EL_AdMob>true</EL_AdMob> Save file. Open project. P.S: Version XE7
    1 балл
  12. "Application.ProcessMessages;" не рекомендуют использовать с элементами интерфейса! Там какие-то косяки есть! Используйте потоки.
    1 балл
  13. Путем поисков и мучений: uses FMX.Helpers.Android, // Androidapi.IOUtils, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net, Androidapi.JNI.Os; ... var Intent : JIntent; uri : Jnet_Uri; j_file : JFile; f_name : string; ... begin // имя пересылаемого файла f_name := 'picture.png'; // файл должен быть сохранен по пути: Androidapi.IOUtils.getExternalFilesDir // или тоже самое: GetPublicPath // К примеру: ...SaveToFile(TPath.Combine(TPath.GetPublicPath, f_name)); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString('....')); // тема, если нужно Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString('....')); // текст сообщения, если нужно // прикрепляем файл j_file := SharedActivity.getExternalFilesDir(StringToJString(f_name)); uri := TJnet_Uri.JavaClass.fromFile(j_file); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM,TJParcelable.Wrap((uri as ILocalObject).GetObjectID)); Intent.setType(StringToJString('vnd.android.cursor.dir/email')); // SharedActivity.startActivity(Intent); end; Как приаттачить файл по любому другому пути не знаю.
    1 балл
  14. xenon54

    [TidHTTP] Не срабатывает Timeout

    Помнится я целый день на гугл потратил в поисках этого... А насчет того что быстрей срабатывает чем установлен таймаут, что-то тут не то, я ради интереса засекал сегодня, отрабатывает четко по таймауту.
    1 балл
  15. Одним вызовом передать два Intent-а? Никак, ибо функции типа startActivity() принимают только один экземпляр. Зато в один Intent можно напихать довольно много разнородной информации используя разнообразные Exstra.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...