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

S0lexV

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

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

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Пытаюсь адаптировать под ++, на шаге if TJEnvironment.JavaClass.isExternalStorageManager = false then Нет метода isExternalStorageManager. А у Intent:= TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); Нет метода ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION Мой код примерно такой: if(TJBuild_VERSION ::JavaClass->SDK_INT>=30) { if(TJEnvironment::JavaClass-> //нет { _di_JIntent intent; intent = TJIntent::JavaClass->init(TJIntent::JavaClass-> // нет); } }
  2. В принципе направление куда двигаться я понял, спасибо за подсказку!
  3. Судя по всему проблема действительно в этом, в AndroidManifest прописано следующее: <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_MEDIA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:requestLegacyExternalStorage="true"> Но файлы по прежнему не видятся. Видимо нужно в RunTime делать запрос на получение права? Можете подсказать пример как это реализовать на C++ ?
  4. Такой вариант пробовал тоже: TStringDynArray A = TDirectory::GetFiles(TPath::GetSharedDownloadsPath(), "*.car", TSearchOption::soTopDirectoryOnly); FindBox1->RowCount = A.Length; for(int i = 0; i < A.Length; i++) FindBox1->Cells[0][i] = A[i];
  5. Доброго времени! Использую следующий код для поиска файлов с расширением ".car" на устройстве: DownloadPath = System::Ioutils::TPath::GetSharedDownloadsPath(); TSearchRec sr; FindFirst( DownloadPath + "/*.car", faAnyFile, sr); { do { if ( sr.Name=="." || sr.Name==".." ) {} else if ( (sr.Attr & faDirectory) == faDirectory ) {} else { FindBox1->RowCount ++; FindBox1->Cells[0][i] = sr.Name; i++; } } while ( !FindNext(sr) ); FindClose(sr); } Принцип работы таков, что из приложения сохраняется файл в данную директорию, а затем его нужно подгрузить. На старом Андроиде 7 все работает как надо, в StringGrid падают названия файлов с нужным расширением, но на версии 13 проблема заключается в следующем: если создать файл из этой копии приложения, а затем попытаться его найти то он видится и без проблем загружается его содержимое, но если переустановить приложение (тупо снести и заново поставить), в этом случае приложение просто перестает видит какие либо файлы. Пусто. И опять если создать новый файл, то приложение видит только свежий файл(ранее созданные не отображает, хотя в проводнике я их вижу). В User permission есть права на Read / Write external storage, правда в телефоне они видятся как "Доступ к видео и фото" и Доступ к музыке и аудио". Что может быть ? заморочка последних версий Андроида ? Также был переустановлен Билдер последней версии, установлены последние SDK/NDK. Пересобрал новый проект и проблема все равно осталась...
  6. S0lexV

    Глюк с отрисовкой стиля

    Доброго времени! Друзья, подскажите в чем может быть проблема... На форме TabControl с некоторыми вкладками. Есть StyleBook с загруженным стилем. Применяю стиль, сначала все ок но потом стиль пропадает у первых двух вкладок TabControla..... Компилирую под винду - все ок, компилирую на Андрэ - результат на скриншоте.
  7. S0lexV

    Load/Save StringGrid

    Грубо но работает, кто знает код лучше напишите сюда Загрузка из файла в SG TStringList *ts1=new TStringList; TStringList *ts2=new TStringList; TStringList *ts3=new TStringList; ts1->LoadFromFile(path+"car.car"); // Подгружаем файлик ts2->StrictDelimiter = true; ts2->Delimiter = '#'; ts2->DelimitedText = ts1->Text; // По разделителю разбиваем текст и сливаем его в ts2 ts3->Text = ts2->Text; Memo1->Lines->Text = ts3->Text; // В мемо для наглядности int ic=0,ir = 0;// Счетчики строк и столбцов for ( int j = 0; j < ts3->Count; j++) { if(ts3->Strings[j].operator ==('*')) { ic=0; ir++; sg->Cells[ic][ir] = ts3->Strings[j+1]; } else { sg->Cells[ic][ir] = ts3->Strings[j]; ic++; } } Содержимое файла должно быть вида: String 1#1#2#3#4 *#String 2#1#2#3#4 *#String 3#1#2#3#4 # - разделитель, * - идентфикатор новой строки Результат работы программы(как отобразится в SG): String 1 1 2 3 4 String 2 1 2 3 4 String 3 1 2 3 4
  8. S0lexV

    Load/Save StringGrid

    да не нужен мне stringlist, мне нужно в STRINGGRID запихать текст из файла!
  9. S0lexV

    Load/Save StringGrid

    ошибка, не влияющая на решение задачи.... Мне нужно залить в SG текст по делимитеру
  10. S0lexV

    Load/Save StringGrid

    Друзья, подскажите пожалуйста как реализовать на с++ в FMX загрузку и сохранение текста. В VCL раньше делал так: TStringList *sl = new TStringList; sl->LoadFromFile(path+"car.car"); for(int i = 0 ; i<sg->RowCount ; i++) { sg->Rows[i]->DelimitedText=sl->Items->Strings[i]; } Но в FMX нет метода "Rows"..... В инете есть примеры на делфи, но на C++ нет, переделать не получается. Очень нужно! Пожалуйста!
  11. Проблема в файле bmp... JPEG грузит без проблем. Разве с БМП нельзя работать ?
  12. Доброго времени! Только начал знакомится с FMX, казалось бы от VCL отличий не так уж и много но все же.... Пытаюсь загрузить картинку в ImageViewer (в Image тоже пробовал). ImageViewer1->Bitmap->LoadFromFile(System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "1.bmp")); Но получаю ошибку (failed to loading bitmap "путь_к_папке_с_файлами_приложения" ) В deployment загружен файл "1.bmp", remote path прописан assets\internal Пробовал похожим способом загрузить с помощью deployment текстовый файл в мемо все работает! Когда компилю под винду - картинка грузится, под андроид: вылетает вышеуказанная ошибка PS Среда C++B10 Seattle
×
×
  • Создать...