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

masmat

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

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

  • Посещение

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

    1

Ответы сообщества

  1. Пост masmat - сообщение в Application.FormFactor.Orientations был отмечен как ответ   
    Если возникает проблема с поворотом экрана, нужно отредактировать файл AndroidManifest.template.xml

    Нужно скорректировать выделенную строку

    <%application-meta-data%>

            <!-- 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>

  2. Пост masmat - сообщение в Как запустить приложение ВКонтакте из своего приложения? был отмечен как ответ   
    Отвечу сам
     
    procedure TForm1.ButtonClick(Sender: TObject); const cVkPackage = 'com.vkontakte.android'; var   Manager: JPackageManager;   Info: JActivityInfo;   List: JList;   I: Integer;   ResolveInfo: JResolveInfo;   NativeCompName:JComponentName;   Intent: JIntent; begin   Intent:=TJIntent.Create;   Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);   Intent.setData(StrToJURI('https://vk.com/адрес_группы'));   Manager :=SharedActivity.getPackageManager;   List:=Manager.queryIntentActivities(Intent,0);   for I := 0 to List.size-1 do     begin      ResolveInfo:=TJResolveInfo.Wrap((List.get(i)as ILocalObject).GetObjectID);      Info:=TJActivityInfo.Wrap((ResolveInfo.activityInfo as ILocalObject).GetObjectID);      if SameText(JStringToString(Info.packageName),cVkPackage) then        begin          NativeCompName:=TJComponentName.JavaClass.init(ResolveInfo.activityInfo.applicationInfo.packageName,ResolveInfo.activityInfo.name);          Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);          Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);          Intent.setComponent(NativeCompName);          SharedActivity.startActivity(Intent);        end;     end; end;
  3. Пост masmat - сообщение в Крах повторного запуска приложения был отмечен как ответ   
    Отвечу сам.
    После длительных танцев с бубном, оказалось, что все таки два сертификата могут работать друг с другом, но нужно сделать два разных узла в "Связке ключей", что бы они не совпадали именами.
  4. Пост masmat - сообщение в Как увеличить скорость отработки запроса SQL к базе SQLLite был отмечен как ответ   
    Всем спасибо за советы.
    Вообщем результаты.
     
    Оставил на форме:
    1 TListView 2 TRectangle 1 TCheckBox 1 TLabel + Почистил раздел USES от ненужных вещей
     
    Скорость создания формы, заполнения LiistView  и открытие сократилось до 1 сек.
     
    Т.О. получается, что нужно очень сильно минимизировать кол-во контролов на формах.
  5. Пост masmat - сообщение в Обновление файла БД без перезапуска приложения был отмечен как ответ   
    Под Android я делаю так. Вставляю изначально файл БД в Deploy.
    Потом вызываю при необходимости процедуру
    procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } var   PackageName: JString;   zip: TZipFile; begin      // Отключаемся от базы       FDConnection1.Connected := False;       // Получаем имя apk файла       PackageName := SharedActivityContext.getPackageResourcePath;       if TFile.Exists(JStringToString(PackageName)) then       begin         // Удаляем старый файл базы         TFile.Delete(TPath.GetHomePath + PathDelim + 'DBGK.db');         // Извлекаем новый файл базы         zip := TZipFile.Create;         zip.Open(JStringToString(PackageName), TZipMode.zmRead);         zip.Extract('assets/internal/DBGK.db', TPath.GetDocumentsPath, False);         zip.Close;         zip.free; end;   // Подключаемся к базе   FDConnection1.Connected := True; end;  
    Под iOS вставляю в ресурсы, потом вот так
     
    procedure TForm1.RefreshBD; { TODO -cKod : RefreshBD - обновление БД } begin      // Отключаемся от базы       FDConnection1.Connected := False;   if FindResource(0, 'res_bd', PChar(RT_RCDATA)) <> 0 then     rs_bd := TResourceStream.Create(0,'res_bd',PChar(RT_RCDATA));   if TFile.Exists(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db') then     begin       TFile.Delete(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db');       rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db');     end   else     begin       rs_bd.SaveToFile(TPath.GetHomePath+PathDelim+'Documents'+PathDelim +'dbgkios.db');     end;   FDConnection1.Connected := True; end;
  6. Пост masmat - сообщение в Ошибка SDK при сборке проекта XE8 + iOS 9.2 был отмечен как ответ   
    Перекочевали в ветку http://fire-monkey.ru/topic/1753-oshibki-i-kosiaki-delphi-xe10-seattle-i-xcode-7/page-2#entry11745
×
×
  • Создать...