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

gresaggr

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

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

  • Посещение

Весь контент gresaggr

  1. if ImageList1.Count> 0 then for I := 0 to ImageList1.Count -1 do
  2. Не удалось найти решение для отправки письма через IdSMTP для Андроида 7+?
  3. gresaggr

    XSuperObject - ошибка парсинга

    Добрый день. Пытаюсь парсить следующую структуру (в архиве файл test.json) через XSuperObject в jSonData находится содержимое файла архива. var X: ISuperObject; jSonData: string; ... if jSonData <> '' then try X := SO(jSonData); except print('jSonData: ' + jSonData); result := 'PARS ERROR'; exit; end; выдает ошибку на моменте "... \u0438 60":"40\n\u0417..." Как можно исправить? test.zip
  4. Так и не понял в чем была ошибка. Создал еще раз заново новый проект и заработало. Спасибо.
  5. Именно по этому примеру и делал: при первом запуске появляется запрос на разрешение доступа к фото и на запись (после выхода из приложения в общих настройках приложения можно проверить, что доступ получен правильно). А дальше на выполнении TakeFotoFromCamera вылетает эта ошибка. P.S. Делаю на Community Edition.
  6. Всем привет. Пробую Delphi 10.3 Community Edition. При попытке через стандартный Action сделать фото получаю ошибку: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser... Пытался и с текущим проектом, и с новым (где только одна кнопка сделать фото + получение разрешений). Проверял на Андроид 8 на двух телефонах. Разрешения получены нормально на чтение/запись + доступ к камере. Как-то можно победить?
  7. Всем привет. Работаю с DCEF3 последней ветки (https://github.com/hgourvest/dcef3). Использую Delphi 10.1 Нужно сделать две одновременно запущенных web версии whatsapp (https://web.whatsapp.com/) Динамически создаются два экземпляра Chromium с разными именами, user agent. Сначала создается первый и в нем появляется QR-код для авторизации через телефон. После создания второго - в первом QR код исчезает и появляется ТОЛЬКО во втором. Я так понимаю проблема в куках. Может кто знает как можно задать отдельную папку/хранить в память для каждого экземпляра? Сейчас задаю таким образом глобальный куки менеджер: CookiesPath := ExtractFilePath(Application.ExeName) + DEFAULT_COOKIES_DIR + currentNumber.ToString; CM := TCefCookieManagerRef.Global(nil); CM.SetStoragePath(CookiesPath, true, nil); P.S. Если запускать копию exe из той же папки где находятся все ресурсы хромиума, то такой проблемы нет. P.P.S. Еще заметил, что авторизованная сессия whatsapp не сохраняется после перезапуска программы. А тот же mail.ru сохраняется.
  8. procedure TmainForm.Item_LVUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Item_LV.ItemAppearanceObjects.ItemObjects.Detail.Font.Style := Item_LV.ItemAppearanceObjects.ItemObjects.Detail.Font.Style + [TFontStyle.fsUnderline]; end;
  9. К сожалению не получается: OnUpdateItemObjects - такого события не нашел у ListView. Делал и в UpdatingObjects, и в UpdateObjects, но без результата.
  10. Добрый день. Как под FMX в ListView сделать подчеркивание Detail в рантайме? Пытался делать так: LV.ItemAppearanceObjects.ItemObjects.Detail.Font.Style := [TFontStyle.fsUnderline] но не срабатывает. P.S. Возможно это применить не ко всем строкам, а только к некоторым?
  11. Также делал и через putString. Видимо действительно закрыли этот путь
  12. Делаю так TJSettings_System.JavaClass.putInt(SharedActivityContext.getContentResolver, TJSettings_System.JavaClass.AIRPLANE_MODE_ON, 1) Permissons на WRITE_SETTINGS выставил. Не переключает. Upd. "Так как, начиная с Android 4.2, мы не можем программно включить режим автономного режима, то остаётся только один вариант - показать окно настроек, чтобы пользователь сам отметил флажком требуемую настройку:" Других вариантов судя по всему нет?
  13. Добрый день. Как включить и выключить режим полета на delphi под Андроид?
  14. Спасибо всем за советы. Пока реализовал по методу уважаемого ZuBy из данного сообщения:
  15. Добрый день. Подскажите, пожалуйста, как можно реализовать на Berlin для Андроида такую таблицу без StringGrid'а (динамически)?
  16. Всем добрый день. Дошло дело до дизайна приложения. Как правильно разместить кнопки поверх изображения фона? Исходные данные такие: Delphi 10.1 Berlin Update2. Приложение под Андроид. Есть фон в разрешении 1280*720.. На форме есть Layout с Align = Client. В Layout вставлен Image с Align = Client. Есть отдельные кнопки (на первом рисунке выделены черно-белым цветом). Как правильно сделать вставку кнопок, чтобы попасть на нижнюю кромку фона правил? Еще хочется сделать это универсальным для разных разрешений экрана. if res = 1280 then begin LayoutRulesText1.Margins.Top := 30; LayoutRulesText1.Margins.Bottom := 80; LayoutRulesText1.Margins.Left := 30; LayoutRulesText1.Margins.Right := 30; ImageRulesBack.Position.X := 50; ImageRulesBack.Position.Y := 510; ImageRulesBack.Width := 55; ImageRulesBack.Height := 55; ImageRulesForward.Position.X := 250; ImageRulesForward.Position.Y := 510; ImageRulesForward.Width := 55; ImageRulesForward.Height := 55; end; Изначально думал делать для каждого разрешения через case в зависимости от разрешения, но кажется что этот путь совсем неправильный!
  17. Добрый день. Работал над проектом, все нормально компилировалось. В процессе работы отключилось электричество. Из последних изменений до новой компиляции был добавлен Image с загруженным png (свет отключили). После загрузки не компилируется и выдает ошибки на строке: tmp := TPath.Combine(TPath.GetSharedDocumentsPath, tmp + '.txt'); (Tpath does not contain a member named 'Combine') Undeclared identifier: 'Combine' Undeclared identifier: 'GetSharedDocumentsPath' в Uses помимо прочего прописан System.IOUtils. Проверял на двух разных компьютерах (Win 7/64) Из-за чего такое могло произойти и как быть? Update: вручную прописал tmp := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDocumentsPath, tmp + '.txt'); Ошибка исчезла, но хочется нормального решения.
  18. Огромное вам спасибо! Теперь все работает корректно!
  19. Я хочу чтобы было так: К примеру клик. Enable = false. Началась пауза. В момент паузы еще успели кликнуть три раза. Пауза завершилась. Enable=true. Вот эти три клика в момент паузы не должны считаться.
  20. Кому не сложно, попробуйте у себя проверить: Button1.Enabled:=false; Memo1.Lines.Add ('тест'); // или что-то другое сделать, чтобы можно было отследить пауза Button1.Enabled:=true; И несколько раз быстро нажмите на кнопку. Запуск не под Windows, а под Android. Как у вас все это отобразится? Может быть чего-то недопонимаю, но неужели на такую элементарную штуку, как нажатие на кнопку нужно "...после этого запустить поток, который 1. делает все что там вам нужно 2. при окончании работы разблокирует кнопку" и т.п.? P.S. В моем случае логика была отделена от интерфейса: // здесь код по смене карты + пауза в 2 секунды: в этом месте вызывается процедура. Или в нее также рекомендуете убрать enable кнопки?
  21. Как избежать повторных нажатий/ закликиваний на кнопку? Имеется следующий код: procedure Tfm.ButtonPrevCardClick(Sender: TObject); begin ButtonPrevCard.Enabled := false; Application.ProcessMessages; // здесь код по смене карты + пауза в 2 секунды ButtonPrevCard.Enabled := true; Application.ProcessMessages; end; Под Windows повторных нажатий/закликиваний при этом не происходит. А под Андроид, если пользователь быстро подряд нажал несколько раз, то сработает также несколько раз.
  22. Да, ваш вариант рабочий. Пожалуй, оставлю его - с деплоем удобней файлы заливать. Спасибо.
  23. Победил через ресурсы и StringList: NounsStringList.BeginUpdate; rs := TResourceStream.Create(hInstance, 'nouns', RT_RCDATA); try NounsStringList.LoadFromStream(rs); finally rs.Free; end; NounsStringList.EndUpdate; Спасибо за помощь.
×
×
  • Создать...