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

afors

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

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

  • Посещение

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

  1. Может до запрета запуска второй копии как-то передать "сообщение" ( ParamStr(1) ) уже запущенной копии?
  2. @Вадим Смоленский Думаю пример kami решит проблему. Если интересно, то вот еще ссылка...
  3. @wamaco Попробовал TMS FMX WebGMaps, очень удобно. Но он тоже перекрывает контролы. Может это надстройка над WebBrowser? И если кидаю его на TabControl, приложение Windows и Android зависает, а без TabControl никак (ну или платный из TMS вроде есть что-то). Собираюсь написать в поддержку. Если кто сталкивался с подобным отпишитесь...
  4. Может и банально, но соответствует критериям... Официальное название: whatsapp Официальный сайт: https://www.whatsapp.com/ Платформы: Android, iPhone, Компьютеры Mac или Windows, Windows Phone
  5. Эксперементировал на разных формах, кидал WebBrowser в дизайнере на форму, создавал динамически, загружал страницы в потоке... пока не удалось победить. Зависания могли быть и при вызове календаря, интентах. НО после использования браузера.
  6. @Владимир У меня было похожее поведение, при получении уведомлений программа могла зависнуть (не всегда). Долго пытался найти причину, оказалось, что зависало после использования TWebBrowser.
  7. @dnekrasov Так просто? Какие модули используют ShowWindow, ApplicationHWND и SW_HIDE? (SW_HIDE нашел в модуле Uses Windows)
  8. Спасибо, буду знакомиться с TNetHTTPClient и TNetHTTPRequest. А пока изменил HTTPS на HTTP: fMain.IdHTTP1.Post('http://android.googleapis.com/gcm/send', AData, AResponseContent); На Android 6 заработало. Только не знаю чем это грозит...
  9. Всем привет! Пытаюсь отправлять PUSH через компонент IdHTTP //... //Var ID: Integer; //... Procedure SentPush (ServerKey, DeviceToken: String); // Uses System.JSON var AJson: TJSONObject; AJsonData: TJSONObject; ARegisterIds:TJSONArray; AData, AResponseContent:TSTringStream; Begin ARegisterIds := TJSONArray.Create; AJson := TJSONObject.Create; try ARegisterIds.Add(DeviceToken); AJsonData := TJSONObject.Create; AJsonData.AddPair('id', ID.ToString()); ID := ID + 1; AJsonData.AddPair('message', 'Привет'); AJson.AddPair('registration_ids', ARegisterIds); AJson.AddPair('data', AJsonData); fMain.IdHTTP1.Request.ContentType := 'application/json'; fMain.IdHTTP1.Request.CustomHeaders.AddValue('Authorization', 'key=' + ServerKey); AData := TStringStream.Create(AJson.ToString, TEncoding.UTF8); AData.Position := 0; AResponseContent := TStringStream.Create('', TEncoding.UTF8); fMain.IdHTTP1.Post('https://android.googleapis.com/gcm/send', AData, AResponseContent); AResponseContent.Position := 0; fMain.Memo1.Lines.Add('https://android.googleapis.com/gcm/send' + AJson.ToString); fMain.Memo1.Lines.Add(AResponseContent.DataString); finally end; End; Пример взят с На Windows работает, Push отправляются и приходят. Тот же самый код на Android не работает, выдает ошибку: Could not load SSL library. На форумах советуют обновить Indy, подсунуть недостающую библиотеку... Кто подскажет чем это лечится? (Delphi 10.1 Berlin Upd2. Android 6)
  10. Можно без показа экрана набора номера: procedure TForm1.Button1Click(Sender: TObject); // Uses FMX.Dialogs, FMX.PhoneDialer, FMX.Platform var PhoneDialerService: IFMXPhoneDialerService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then PhoneDialerService.Call('+71234567890') Else ShowMessage ('Вызовы не поддерживаются'); end;
  11. @hippocamus Как получить картинку содержимого рабочей области WebBrowser? Ты об этом? WebBrowser1.MakeScreenshot
  12. @krapotkin у меня по второму варианту нет необычного эффекта, экран гасится. Но во всех случаях мне пришлось добавить модуль Androidapi.Helpers. Без него не запустилось.
  13. Ребят, не так давно была тема о том, как не дать устройству уснуть (или выключить) экран. Не могу найти, может поделится кто ссылкой? (возможно неверно указал категорию темы, но "экран" в категориях не нашел)
  14. Равиль, твой последний вариант работает, спасибо!
  15. Тестирую на разных машинах, пока все ок!
  16. В другом проекте браузер не отображает ни одну страницу. По твоему примеру закомментировал только одну строчку. Пока вроде все хорошо и раскрытие списка не перезагружает браузер. procedure TCustomWebBrowser.FormHandleCreated(const Sender: TObject; const Msg: TMessage); var WBService : IFMXWBService; begin if not (csDesigning in ComponentState) and TPlatformServices.Current.SupportsPlatformService(IFMXWBService, WBService) then begin FWeb := WBService.CreateWebBrowser; FWeb.SetWebBrowserControl(Self); // FWeb.UpdateContentFromControl; FWeb.URL := FURL; FWeb.Navigate; end; end;
  17. Спасибо Равиль, теперь все работает!
  18. На Android нет проблем. У меня нет доступа к странице по ссылке)
  19. Заметил странное поведение приложения при наличии обоих компонентов (WebBrowser1 и ComboBox1) 1. При раскрытии и закрытии списка ComboBox, браузер обновляет страницу. Причем не важно, перекрывает ли список браузер или нет. 2. Если список хоть раз раскрыли и СВЕРНУЛИ(!), то при закрытии программы вылетает ошибка, которая решается освобождением браузера (WebBrowser1.Free) Второй вопрос не так важен, но хотелось бы знать причину такого поведения, если кто знает... Но вопрос №1: очень прошу помощи - как сделать, чтобы при раскрытии ComboBox браузер не обновлял страницу? Прилагаю пример проекта. WB_CB_Err.zip PS: Delphi 10.1 Berlin (UPD1 и UPD2)
  20. Проблема решилась динамическим созданием/удалением TWebBrowser: ... var Form1: TForm1; DynBrowser: TWebBrowser; implementation {$R *.fmx} procedure TForm1.WebBrowser1DidFinishLoad(ASender: TObject); var aThread: TThread; begin aThread := TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(nil, procedure begin Image1.Bitmap := DynBrowser.MakeScreenshot; DynBrowser.Free end) end); aThread.FreeOnTerminate := true; aThread.Start; end; procedure TForm1.Button1Click(Sender: TObject); begin DynBrowser:=TWebBrowser.Create(self); DynBrowser.Parent:=TabItem2; DynBrowser.Align:=TAlignLayOut.Client; DynBrowser.OnDidFinishLoad:=Form1.WebBrowser1DidFinishLoad; DynBrowser.Navigate(Memo1.Text); DynBrowser.Free; end; ...
  21. Рано радовался) При повторном обновлении снова зависает. Похоже в какую-то цикличность уходит, оперативная память забивается, В студии бегут строки как на картинке. А с кнопки все как надо (не в потоке)
  22. Так работает, хоть и не до конца понимаю такой подход. Это запуск процедуры в потоке? Спасибо, Равиль!!!
  23. Всем доброго дня или вечера... Пытаюсь разобраться как получить скриншот загруженной страницы в Image1. У WebBrowser1 есть встроенная функция WebBrowser1.MakeScreenshot. Если по нажатии на Button1 выполнить код Image1.Bitmap:=WebBrowser1.MakeScreenshot; , то все работает. А если выполнить этот же код при срабатывании события OnDidStartLoad, приложение зависает. Как это побороть? PS: файл проекта прилагается... SceenShotFromWebBrowser.zip
×
×
  • Создать...