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

SergB

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

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

  • Посещение

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

  1. SergB

    WebBrowser Печать

    Нашел решение для FMX (два дня ковырялся). 1. Удаляем стандартный WebBrowser с формы и FMX.Webbrowser из uses (чистим следы) 2. Подключаем uses SHDocVw, Vcl.Forms, Vcl.Controls 3. Из-за п.2 начнутся разногласия в типах данных (после этого нужно учитывать, что возможно где-то когда-то еще что-то вылезет и нужно будет для другого объекта конкретизировать тип ). Поэтому конкретизируем что наша форма ... type TForm1 = class(FMX.Forms.TForm) Так же пришлось мне конкретизировать, что ... ImageList1: FMX.ImgList.TImageList; 4. Объявляем глобальные переменные (объекты будем создавать динамически) Можно Form и не создавать, но тогда при вызове предварительного просмотра будет дополнительно вне нашей формы создаваться окно IE причем без заголовка окна + окно предпросмотра. А нужно только окно предпросмотра. 5. Далее создаем наши объекты procedure TForm1.FormCreate(Sender: TObject); ... Form:=VCL.Forms.TForm.Create(Application); Form.Visible:=false; Form.Height := 600; Form.Width := 800; WebBrowser:=TWebBrowser.Create(Form); TWinControl(WebBrowser).Parent:=Form; WebBrowser.Silent := true; WebBrowser.Visible := false; WebBrowser.Top:=0; WebBrowser.Left:=0; WebBrowser.Height :=Form.Height; WebBrowser.Width := Form.Width; WebBrowser.OnDocumentComplete:=WebBrowserDocumentComplete; WebBrowser.Visible:=true; ... end; procedure TForm1.WebBrowserDocumentComplete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant); begin WebBrowser.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER); // то ради чего старались и наконец-то заработает end; 6. Там где нужно загрузить страницу пишем WebBrowser.HandleNeeded; // обязательно. Без этого ничего не загрузится WebBrowser.Navigate(s); P. S.: и кстати вообще не вариант, т к. нет окна предпросмотра, а тупо выскакивает окно выбора принтера и можно только отправить на печать, не подогнав размеры под лист. Этого же можно добиться обычным keybd_event, отправив на WebBrowser комбинацию Ctrl+P.
  2. SergB

    Widget на Delphi

    А возможно как-нибудь прикрепить к своему проекту виджет (готовый, написанный другими средствами )? Виджет будет данные получать с сервера. Необходимо чтобы при установке моего приложения в системе появлялся виджет.
  3. Ну и по традиции отвечаю опять я ?. Решил я эту проблему. Я так и не разобрался, где происходит неполадка, либо при формировании aab делфой, либо при формировании установочных файлов при установке с гугла. НО, я поступил следующим образом. 1. Компилируем в делфе отдельно 32 и 64 apk 2. Открываем архиватором apk 64 и копируем из него папку arm64-v8a со всем содержимым куда-нибудь на диск 3. Копируем эту папку arm64-v8a в apk 32. Итого получаем apk 32 содержащий либы для 32 и 64. (что и нужно гуглу). Но после этого наш файл не подписан. Можно подписать и с компа, но это тот еще геморрой. Я подписывал прямо на телефоне с помощью программы ZipSinger. Может есть и другие, но я делал с ней и все сработало. После подписания загружаем наш гибридный apk в гугл и все работает без проблем ?. Ну еще раз скажу, что эта проблема с формированием aab у меня возникла лишь когда я добавил в свое приложение сервис. Если нет сервиса то проблем с aab я не наблюдал.
  4. Отвечу сам ?. Выяснил. Если загружать отдельно пакет для 64 версии, то все работает как надо. А вот если формируем aab, то начинаются такие проблемы. Причем все работает с aab нормально, если приложение не содержит сервиса. По всей видимости или делфа не верно формирует пакет aab для сервиса, либо на гуле при оптимизации происходят какие-то метаморфозы. Теперь другая проблема, как сформировать пакет aab так чтобы все работало?
  5. Приветствую. Кто может подсказать в чем дело. Программа содержит сервис. Задача чтобы сервис через определённый промежуток слал запросы на сервер и обрабатывал ответ (внутри сервиса создают поток). При перезагрузке телефона нужно чтобы сервис запускался автоматом. При отладке все работает как часы. Если установить программу с apk, при отладке все ок. Все шлёт, перезапускается. Но стоит выложить программу в Google play и установить её оттуда, сервис перестаёт запускаться при запуске программы и запускаться автоматом при перезагрузке. При перезагрузке запускается программа, причём фоном. На экране её нет, но на сервере вижу, что запросы шлёт программа, а не сервис. Причём та же программа установленная с Google play на android 8 работает правильно. А при установке на android 9 (xiaomi) начинаются проблемы. Все разрешения в манифесте прописаны и в настройках телефона тоже. Проблема именно после установки с Google play начинается и на android 9. Всю голову сломал, не пойму куда копать. Проверял программами информерами на телефоне содержит ли моя программа сервис, его название и т д. Все на месте.
  6. Доброго времени. Приложение под android. Проблема следующая. Если на форме есть Memo с выравниванием Bottom то при вызове контекстного меню для вставки текста из буфера, вырезания и т д само контекстное меню появляется не около текста, а на внизу виртуальной клавиатуры. Система считает что Memo находится не над клавиатурой, а в самом низу формы и выскакивает именно над старым положением Memo (внизу). Причем если добавить еще несколько строк в Mемо, то контекстное меню не появляется вовсе т к отображается за пределами нижней границы формы.
×
×
  • Создать...