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

Вадим Шавров

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

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

  • Посещение

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

    1

Сообщения, опубликованные Вадим Шавров

  1. 3 часа назад, FREEFAR сказал:

    Костыль года ))

    Tdatetime.hittest = False;

    на него кидаем TLAyout

    Layout.align := talignlayout.contents;

    Layout.hittest = True;

    в onTap у Layout пишем

    datetimepicker.OpenPicker;;

     

    Спасибо! Работает. ☺️

    Для ComboEdit тоже самое, только в OnTap: ComboEdit1.DropDown;

  2. Объявил FKService в var, все равно ошибка в двух последних строках с FKService:

    procedure TFormMain.showKeyboard(Sender: TObject);
    var
      FService, FKService: IFMXVirtualKeyboardService;
    begin
      {$IFDEF MSWINDOWS}
      exit;
      {$ENDIF}
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        if not (TVirtualKeyBoardState.Visible in FService.VirtualKeyBoardState) then
          FService.ShowVirtualKeyboard(TFmxObject(Sender));
      end;
    
      if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardToolbarService, IInterface(FKService)) then
        begin
          FKService.SetHideKeyboardButtonVisibility(False);
          FKService.SetToolbarEnabled(False);
        end;
    end;

    Ааа, я понял, нашел ваш ответ в другом вопросе, как я понял это для iOS. Просто убрал эти строки.

    В общем ваше решение работает на Edit'ах и Memo, но как быть с ComboEdit, DateEdit?

  3. Имеется такая "форма" для добавления новой записи в БД. Там Edit, ComboEdit, DateEdit, Memo и т.п., все они расположены на VertScrollBox. Можно ли как-то блокировать эти компоненты при скролле, а то попадешь на поле для ввода и сразу выскакивает то клавиатура, то окно комбо эдита, то календарь??

    Screenshot_InventoryOfDevices_20180509-194430.thumb.png.161442d0a690fc80f0af52dd2f678ddf.png

  4. Попробовал снести последнюю версию SDK, оставил 21 и 22, создал абсолютно пустой проект, все равно сбой при запуске приложения на планшете (android 7). Не понимаю, в чем дело ?

    Вот ошибка:

    Screenshot_20180505-170629.png.60fb2d25783667da17152b10a07917df.png

    Вот apk файл.

  5. В общем изначально делал приложение с установленным SDK 25:

    2018-05-05_12-19-24.png.25847de7d1a756897cf71737220254f8.png

    На телефоне с Android 8 запускается, на планшете с Android 7 и другом тел. с Android 6 нет. Искал ответ, в том числе на этом форуме. Нашел решение через AndroidManifest. Поменял минимальную версию в манифесте, расположенном в C:\Users\User\AppData\Roaming\Embarcadero\BDS\19.0. 

    Получился следующий шаблон:

    Спойлер

    <?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="21" 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%" />
                <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) -->
     

    И приложение все равно только на восьмерке запускается, что я делаю не так? 

  6. Вроде бы ошибок нет, а как правильно её вызывать?

    ShareFile('storage/emulated/0/Documents/data.db', ???);

    aFileName - это полный путь к файлу или только название "data.db'?

    aComment - а это я вообще не понимаю для чего :(

  7. Приветствую. Как реализовать экспорт БД из программы, расположенной по адресу:

     2018-05-03_10-13-53.thumb.png.d54695ef94f679b521d16ee2d1a0450d.png

    Т.е. чтобы выводилось стандартное андройдовское окно (см. скрин), как во многих приложениях при нажатии на кнопку "поделится", и там допустим можно было бы эту базу залить на Яндекс.Диск.

    Ну соответственно хотелось бы сделать импорт скачанного файла по тому же адресу, через проводник допустим.

    Можно ли это как-то реализовать?

    1666241421_Screenshot__Android_20180503-100223.thumb.png.38c7751efaf3516ff7ea7cfc7fdf930e.png

  8. 17 минут назад, FREEFAR сказал:

    Попробуй так

    v: TVertScrollBox

    v.ScrollTo(0,0,False);

    v.ScrollBy

    Не помогло.

    Решил поискать ответ по командам, которые вы написали. Нашел такое решение:

    VertScrollBox1.ViewportPosition:=TPointF.Create(0,0);

    Все работает. Спасибо!

  9. Добрый день. 

    Как программно изменить позицию TVertScrollBox. Допустим я добавляю новую запись в БД, открывается вкладка с полями (скрин 1), я все что нужно указываю... дохожу до поля "Примечание"... сохраняю. Но при следующем открытии этой вкладки, позиция Скролла остается на том же месте (скрин 2). Как вернуть его в начало. В VCL было все было просто и понятно - "ScrollBox1.VertScrollBar.Position:=0;" А как тут, я не понимаю.

    2018-04-27_16-02-52.png.075ea2f7cb5a1d57bc6591c17b1ee060.png2018-04-27_16-03-09.png.cd806039dd1b23d5ec513b3f6b11758c.png

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