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

Активность

Лента обновляется автоматически

  1. today
  2. antigrav

    Утечка памяти

    Здравствуйте, коллеги. Пишу метод десериализации для считывания данных из файла и создания соответствующего объекта в памяти. Для того, чтобы пользователь не скучал, загружаю данные в отдельном потоке, а в главном запускаю TAniIndicator. Данные считываются, объект создается, AniIndicator работает. Но при попытке завершения приложения получаю утечку памяти (см. рис.). Пользовательские объекты я удаляю перед закрытием приложения, но в памяти остаются системные объекты, в том числе из библиотеки PPL. Сокращенный код метода загрузки данных ниже. С чем может быть связана утечка? Для детектирования утечек использую команду ReportMemoryLeaksOnShutdown := True. Если дополнительный поток не использую, утечек нет. procedure LoadProjectFromFile(AFileName: string); var fut: IFuture<TComponent>; cmp: TComponent; begin AniIndic.Enabled := True; AniIndic.Visible := True; fut := TTask.Future<TComponent>( function: TComponent begin Result := LoadFromFile(AFileName); end ); TTask.Run( procedure begin fut.Start; cmp := fut.Value; {$REGION 'После загрузки в главном потоке'} TThread.Synchronize(nil, procedure begin AniIndic.Enabled := False; AniIndic.Visible := False; if Assigned(cmp) then begin if cmp is TCAMProject then begin fProject := cmp as TCAMProject; // здесь всякие действия if Assigned(OnFinishedLoadProject) then begin OnFinishedLoadProject(nil); end; end end end ) {$ENDREGION} end ); end;
  3. Вчера
  4. krapotkin

    Ping в андроид

    Пинг это просто один из вариантов вызвать сервер и чтоб он ответил. Нас интересует сам факт. Иногда вообще факт работающего интернета. Поэтому если на той стороне есть веб-сервер, то ничем не хуже просто сделать на него get запрос var resp := http.get('https://google.com'); ответил - живой. не ответил - либо нет сети, либо сервера
  5. Razmir

    Ping в андроид

    А можно подробнее? в принципе мне не важно куда пинговать, главное чтобы пинг проверить..
  6. Супер!!! Спасибо! А можно пример в проекте? - не пойму как "прикрутить" вызов...
  7. Последняя неделя
  8. Может кому надо Androidapi.JNI.GnssStatusCallback.rar
  9. вот официальный список https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Android_Devices_Supported_for_Application_Development
  10. Подскажите есть устройства на intel x86, приложение висит на логотипе. Какие действия для отладка и вообще поддерживаются ли устройства на этом чипе?
  11. krapotkin

    Ping в андроид

    а веб-сервера нет на нужном компе? все бы стало проще в разы
  12. Razmir

    Ping в андроид

    Спасибо. Еще бы это на делфи как то перевести ((
  13. OnePeople

    Ping в андроид

    https://stackoverflow.com/questions/9062182/android-icmp-ping?rq=4
  14. Ещё раньше
  15. Razmir

    Ping в андроид

    Предоставил все разрешения, которые только можно, все равно ошибка сокета ((
  16. krapotkin

    Ping в андроид

    думаю, нужно 1) установить в манифесте нужные разрешения 2) возможно нужно запрашивать разрешение у пользователя на эту деятельность точнее только в доках на developers.android.com https://stackoverflow.com/questions/58039309/android-permissions-for-pinging-network
  17. Razmir

    Ping в андроид

    Доброго всем. Подскажите пожалуйста. Мне по работе надо зачастую проверять ping, ноутбук не всегда удобно использовать, поэтому решил сделать приложение для телефона. Использовал следующий код: procedure TForm1.Button1Click(Sender: TObject); begin IdIcmpClient1.Host:='173.194.73.138'; IdIcmpClient1.Ping; end; procedure TForm1.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); begin ListBox1.Items.Add (' Ответ '+IntToStr (AReplyStatus.MsRoundTripTime) +' TTL='+IntToStr (AReplyStatus.TimeToLive) ); end; В windows работает как надо, под андроидом выдает ошибку - Socket Error # 1. Как с этим бороться, что делать? Заранее благодарю.
  18. Я столкнулся с похожей проблемой из-за несовместимости 12й Rad Studio с 8й версией jdk. Переустановил jdk 19й. Отредактировал SDK и все заработало.
  19. OnePeople

    Скриншот

    FMX / 11.3 Собственно вот, делаю в потоке скриншот и отрисовываю каждые 30 ms на прямоугольник, но жрет память как не в себя. Вопрос такой если у webbrowser нет канвы, как отрисовать WebBrowser на другом контроле. mapControl.cashBitmap := Form1.wb1.CaptureBitmap; TmpCanvas := TCanvasManager.CreateFromBitmap(lwMap.Fill.Bitmap.Bitmap, TCanvasQuality.HighPerformance); TmpCanvas.BeginScene(); TmpCanvas.DrawBitmap(mapControl.cashBitmap , mapControl.cashBitmap .BoundsF, lwMap.Fill.Bitmap.Bitmap.BoundsF, 1); TmpCanvas.EndScene;
  20. обычно XML/JSON/etc - это чисто транспортный формат, поэтому ручное его редактирование - странная вещь по идее программа должна подготовить объекты и структуры и упаковать их в XML и наоборот - парсить XML, чтобы получить объекты с редактированием самого текста отлично справляются внешние редакторы, бесплатные, которых просто мильон - notepad++, microsoft xml notepad и разные другие, включая online. неясно, для чего этот функционал в своей программе из компонентов-редакторов подсветкой есть synedit
  21. Запили свой собственный редактор
  22. Программка и задумывается для редактирования и перевода строк.
  23. если не надо редактировать, то просто в HTML выгнать и все
  24. без тестового проекта и файла... даже сравнить не с чем.
  25. Надо написать новую (предыдущая не устраивает) программку для правки/редактирования/перевода текста. Пример текста: "...<LTEXT English="DIALOG::RhinoLMTest::Communicating with license manager..." Localized="DIALOG::RhinoLMTest::Communicating with license manager..." ID="IDC_STATIC" IDN="174"/> <RHINOSTRING_STATUSBAR_MESSAGE English="Could not convert Rhino loop." Localized="Could not convert Rhino loop." ID="IDS_COULD_NOT_CONVERT_LOOP"/> <RHINOSTRING English="Autosave is disabled because your evaluation period is expired.\n[[35640]]" Localized="Autosave is disabled because your evaluation period is expired.\n[[35640]]"/> <RHINOSTRING English="&amp;Save Current Viewport As Named View...[[33025]]" Localized="&amp;Save Current Viewport As Named View...[[33025]]"/> <MENUITEM English="MENU::Linked::&amp;Shade Selected Objects Only" Localized="MENU::Linked::&amp;Shade Selected Objects Only" ID="32893"/>..." Это не xml и не html. В файле (пока) до 45000 строк. Надо сделать подсветку строк, тегов, линейки, номера строк и установку меток на номере строк. Memo и RichEdit (~15 секунд) долго грузят файл, а работа а автоматическом режиме, например, поиск и замена на старом компьютере могла длиться около 20 минут. Какой компонент лучше использовать в Delphi 7 и RAD Studio 11.3?
  26. Нижайший Вам поклон, мил человек
  1. Загрузить ещё активность
×
×
  • Создать...