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

Лидеры

  1. Камышев Александр

    Камышев Александр

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


    • Баллы

      10

    • Постов

      235


  2. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      5

    • Постов

      2 517


  3. Rusland

    Rusland

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


    • Баллы

      4

    • Постов

      1 204


  4. Kitty

    Kitty

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


    • Баллы

      2

    • Постов

      792


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

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

  1. Раньше тоже пользовался продуктами devart, хоть и недорогие, удобные, надежные, но все же они платные, плюс вообще не люблю подключать сторонние компоненты. На oldschool теплом ламповом CBuilder приходилось много всего подключать: скины, компоненты доступа к бд, инди последних версий, компоненты для отчетов, png и т.п. С тех пор стараюсь избегать всего не родного. FireDAC понравился, хорош CmdExecMode amAsync - The calling thread and GUI are not blocked. The called method will return immediately. Позволяет работать с базой из основного потока без завешивания, отправил запрос и занимайся другими задачами пока callback не придет.
    4 балла
  2. String fn; String path = System::Ioutils::TPath::GetSharedDownloadsPath(); #ifdef __ANDROID__ TSearchRec sr; if ( !FindFirst( path + "/*", faAnyFile, sr) ) { do { if ( sr.Name=="." || sr.Name==".." ) {} else if ( (sr.Attr & faDirectory) == faDirectory ) {} // dir else {} // file // отрисовать в список sr.Name sr.Name; } while ( !FindNext(sr) ); FindClose(sr); // по клику в списке получить fn = path + "/" + name; } #else OpenDialog->InitialDir = System::Ioutils::TPath::GetSharedDocumentsPath(); if ( !OpenDialog->Execute() ) return; fn = OpenDialog->FileName; #endif вот так сделал, кому понадобится, на паскале тоже работает, только синтаксис другой
    3 балла
  3. void __fastcall domThread::UpdateAnimation() { frm->aIndic->Visible = false; frm->aIndic->Enabled = false; } незнаю как на си будет, но примерно так void __fastcall domThread::Execute() { Synchronize( UpdateAnimation ); Terminate(); }
    3 балла
  4. Rusland

    Failed to load libssl.so

    Может быть так? (правда код на Delphi)
    3 балла
  5. разрыв соединения - все корректно обрабатывается void __fastcall TMyDBClient::ConnectionError( TObject *ASender, TObject *AInitiator, Exception *&AException ) { status = dbcError; #ifdef AUX_MODE error_string = AException->Message; #endif if ( FOnError ) FOnError( (TObject*)this ); Abort(); } //--------------------------------------------------------------------------- void __fastcall TMyDBClient::QueryError(TObject *ASender, TObject *AInitiator, Exception *&AException) { status = dbcError; #ifdef AUX_MODE error_string = AException->Message; error_string += "\r\nsql: " + fquery->SQL->Text; #endif if ( FOnError ) FOnError( (TObject*)this ); Abort(); } //--------------------------------------------------------------------------- void __fastcall TMyDBClient::AfterDisconnect(TObject *Sender) { status = dbcNotConn; #ifdef AUX_MODE log_string = "db - disconnect"; if ( FOnLog ) FOnLog( (TObject*)this ); #endif } Abort() - чтобы не было исключения в Application так тишина и только логи шелестят переподключениями
    2 балла
  6. Подскажите, пожалуйста, почему вы выбрали не рекомендованную ембаркадеро dbExpress? Они рекомендуют FireDAC из палитры компонентов.
    2 балла
  7. Всем кто в сервис передает параметры, типа: procedure TFrmMain.StartService(); var LIntent: JIntent; begin LIntent := TJIntent.Create; LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.TestRemoteServ')); LIntent.setAction(StringToJString('StartService')); TAndroidHelper.Activity.startService(LIntent); end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin if Intent.getAction.equalsIgnoreCase(StringToJString('StopService')) then begin Log('START_NOT_STICKY'); Result := TJService.JavaClass.START_NOT_STICKY; end else // if Intent.getAction.equalsIgnoreCase(StringToJString('StartService')) then begin Log('START_STICKY'); Result := TJService.JavaClass.START_STICKY; end; end; обязательно проверяйте Intent на nil ! Когда система убивает ваше приложение из-за нехватки памяти и перезапускает сервис, то на Intent.getAction происходит Segmentation fault и сервис остается в подвешенном состоянии (на процессоре ARM в Приложения - Работающие у меня отображается как-будто сервис нормально перезапустился, а вот на процессоре Intel - видно как сервис находится в вечном перезапуске). И естественно хост-приложение не может нормально стартануть. Делаем примерно так: function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin if Intent<>nil then begin if Intent.getAction.equalsIgnoreCase(StringToJString('StopService')) then begin Log('START_NOT_STICKY'); Result := TJService.JavaClass.START_NOT_STICKY; end else // if Intent.getAction.equalsIgnoreCase(StringToJString('StartService')) then begin Log('START_STICKY'); Result := TJService.JavaClass.START_STICKY; end; end else begin Log('RESTART BY SYSTEM'); Result := TJService.JavaClass.START_STICKY; end; end;
    1 балл
  8. Так вам не предлагают сдаваться, вам предлагают обновить студию, т.к. в новых версиях исправлены серьёзные ошибки первых версий. Вы просто обновите средство позволяющее достичь ваших целей, при этом избежите возможного геморроя со старыми версиями. Так что тут одни плюсы только Смысла искать проблему в приложении написанном на XE5 не вижу вообще, т.к. проблема может быть скрыта в глубинах студии и вы больше времени потратите на поиски и исправление (если это будет возможно). Ставьте Berlin, пишите приложение Hello World :), давайте друзьям на тест, если не заведётся у них, то выложите сюда apk файл и попросите народ протестить. Я лично, всегда могу посмотреть на Android 4.4.2, иногда ещё на Android 6.
    1 балл
  9. это не тот случай когда стоит стоять до конца, обновите среду до актуальной и будет время заняться программированием, а не изобретением великов (которые так и не поедут)
    1 балл
  10. Равиль Зарипов (ZuBy)

    Failed to load libssl.so

    теперь кстати можно определить запущено приложение на интеле или нет
    1 балл
  11. Камышев Александр

    Failed to load libssl.so

    печалька ошибка та же? если сборке не указать APP_ABI := x86 собирается четыре папки: arm64-v8a, mips64, x86 и x86-64 arm и x86-64 вот libs.zip попробовать библиотеки 86-64 и для чистоты эксперимента arm из этой сборки, mips думаю не нужен
    1 балл
  12. Создайте пустой файл с расширением .udl, к примеру DatabaseName.udl. Откройте его в проводнике, на первой вкладке сразу увидите доступные, на данном компьютере, провайдеры баз данных, на второй вкладке сможете проверить соединение. Если все в порядке и соединение устанавливается, то можно плясать дальше, искать следующую причину. Update - если нужного поставщика нет, то следуйте инструкции https://msdn.microsoft.com/ru-ru/library/dn538994(v=sql.120).aspx
    1 балл
  13. сами формы в андроиде не анимируются, можно только содержимое этой формы взять и с помощью AnimateFloat вывести на экран если разместить на форме TabControl и спрятать табы, то анимация - слайд выполняется с помощью TActionList - TChangeTabAction
    1 балл
  14. Насколько я освидамлен (пишу только пока для десктопов), но для мобил много форменные приложения, не комильфо. И вся "многоформенность" должна помещаться на 1 форму с разлимными приемами "многоформенности". Типа listbox, listview, tabControl, ну или panel. Основные эти компоненты уже имеют анамацию. Другим можно добавить через animation. Усугубляет то, что если у вас много компонентов будет на форме и будите использовать анимацию через tanimation, то будет жутко тормозить, особенно, если андроид слабый.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...