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

Roman V

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

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

  • Посещение

Сообщения, опубликованные Roman V

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

    Вообще никаких сообщений не показывается?

    Блин. Я вообще не понимаю что с этим андроидом. Оказывается он ругался на загрузку картинки. Так вот я закомментировал строку загрузки картинки щас. Теперь прога запускается, однако почему то не считывает данные с ini файла((((. Юзаю этот код. Однако в конченом результате на экране выводится только Def, Def, Def, Def. А то что под ключем "Ответ1" вообще игнорится...(( 

    void __fastcall TForm1::FormShow(TObject *Sender) {
    	Form1->Updated();
    	Form1->Updating();
    	Button1->Text = Ini->ReadString(butId, "Ответ1", "Def");
    	Button2->Text = Ini->ReadString(butId, "Ответ2", "Def");
    	Button3->Text = Ini->ReadString(butId, "Ответ3", "Def");
    	Button4->Text = Ini->ReadString(butId, "Ответ4", "Def");
    	right = StrToInt(Ini->ReadString(butId, "right", "0"));
    	//Image1->Bitmap->LoadFromFile("img\\" + IntToStr(butId) + ".jpg");
    	Label1->Text = butId;
    }

     

    Безымянный.png

  2. 6 минут назад, Rusland сказал:

    Что значит не запускается? В режиме дебаг что-то выдает наверное...

    Компиляция проходит успешно. Но итоге все отлично работает на windows,а под Андроид при запуске висит только значок firemonkey пару секунд и приложение вырубается так и не запустившись. Debug чист.

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

    Какую ошибку при этом выдает?

    Вот щас попробовал вообще попробовал в левую папку кинуть ini файл и задеплоудить. Строка остается активной, однако на андроиде проект не запускается, хоть и компиляция проходит успешно...

  4. 6 часов назад, mazayhin сказал:

    Добавьте нужные файлы, укажите путь и все.

    Не до конца понял как с этим работать. Шаги: пишу код 

    #ifdef __ANDROID__
    	String path = System::Ioutils::TPath::Combine
    		(System::Ioutils::TPath::GetDocumentsPath(), L"options.ini");

    ->добавляю файл в Deployment Manager ->указываю путь(assets internal), кидая в папку assets файл-ini->нажимаю Deploy. После этого файл-ini из папки удаляется и сама строка становится не активной. И при запуске естественно приложение сразу же вырубается так и не запустившись. Что я делаю не так? И да. Пробовал класть ini файл в другую директорию, и загружать оттуда, но в Remote Path все равно указывал assets\internal. В таком случае строка остается активной, однако приложение не запускается...

    Безымянный.png

  5. В 26.10.2017 в 15:40, Kitty сказал:

    1. std::unique_ptr используется чтобы избавиться от delete. std::unique_ptr все делает сам.
    2. Файл ini для Андроида надо сохранить в UTF-8.

    Спасибо большое! У тебя все правильно). Сегодня решил еще раз зайти и посмотреть со свежей головой. И вот, оказывается я не туда писал код просто. Приложение теперь запускается на Андроиде, но как мне создать файл ini во внутренней папке андроида? Если поместить файл ini в asset, то при компиляции все из этой папки удаляется, и приложение запускается без необходимых данных. Как решить эту беду. Как сделать так, чтобы файл считывался из папки assets?)

  6. 51 минуту назад, Rusland сказал:

    Покажите ваш код

    По сути весь основной код уже сверху написан

    #ifdef __ANDROID__
    String path = System::Ioutils::TPath::Combine
    	(System::Ioutils::TPath::GetSharedDownloadsPath(), L"options.ini");
    #elif _Windows
    String path = System::Ioutils::TPath::Combine(ExtractFilePath(ParamStr(0)),
    	L"options.ini");
    #endif
    
    if (FileExists(path)) {
    	std::unique_ptr <TIniFile> Ini(new TIniFile(path));
    	String ip = Ini->ReadString(L"HOST", L"ip", L"127.0.0.1");
    }
    int butId; // номер вопроса

    Далее идет код, который передает данные с ini на кнопки. 

    void __fastcall TForm1::FormShow(TObject *Sender) {
    	Form1->Updated();
    	Form1->Updating();
    	Button1->Text = Ini->ReadString(butId, "Ответ1", "Def");
    	Button2->Text = Ini->ReadString(butId, "Ответ2", "Def");
    	Button3->Text = Ini->ReadString(butId, "Ответ3", "Def");
    	Button4->Text = Ini->ReadString(butId, "Ответ4", "Def");
    	right = StrToInt(Ini->ReadString(butId, "right", "0"));
    	Image1->Bitmap->LoadFromFile("img\\" + IntToStr(butId) + ".jpg");
    	Label1->Text = butId;
    }

    Ну и еще там по мелочи. Все писать не буду. Т.к. в остальном ini не фигурирует.

  7. 26 минут назад, enatechno сказал:

    P.S. Когда задаете вопрос, указывайте версию RAD, версию Android и устройство на котором тестируете

    Запускаю на Lenovo A806, Android 4.4.2. Кастомная Lewa OS. Пробовал запускать другой код. Все работает. Однако с ini не хочет. Все галочки стоят.

  8. Компилируется если закомментировать саму проверку. Но далее все равно прога на андроиде не запускается (только значок файерманки висит). А на винде все так же отлично работает. 

  9. 34 минуты назад, Kitty сказал:

    Эта строка ни причем. Судя по ошибке, где-то ошибка в коде в синтаксе, например, пропущена где то точка с запятой ;

    Не могу ничего найти, скорее всего ошибка в коде, что написал ты. Но блин, 20 раз уже проверил. Видимо я слепой)

  10. Всем привет. Учусь работать с ini-файлами на Android. И сразу же возникла проблема, которую никак не могу решить. Хотел написать подобие приложение-тест с хранением данных в ini файле. В итоге все отлично работает на windows,а под Андроид при запуске висит только значок firemonkey секунд 10 и приложение вырубается так и не запустившись. В чем может быть проблема? Использую отладку по USB. 

    TIniFile *Ini = new TIniFile(System::Ioutils::TPath::GetDocumentsPath() + PathDelim + "options.ini");

    Юзаю эти библиотеки 

    #include <System.IOUtils.hpp>
    #include <System.IniFiles.hpp>

     

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