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

Pax Beach

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

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

  • Посещение

  • Победитель дней

    12

Активность репутации

  1. Like
    Pax Beach получил реакцию от Rusland в Таймер в сервисе   
    Создавать отдельный поток, а в нем уже sleep(msecs)
  2. Like
    Pax Beach отреагировална rareMax в Плагин (Внешний модуль)   
    Чисто для винды - есть хорошо описаная тема(статей так на 11, на сколько я помню) от гансмокера. Будь готов вчитываться и стараться понимать что происходит. А вот собственно материал для изучения
  3. Like
    Pax Beach отреагировална RoschinSpb в [Статья] Что нового в TImageList (RAD Studio 10.1 Berlin)   
    Статья: http://community.embarcadero.com/blogs/entry/timagelist101ru-1 Автор: Сергей Рощин Обзор новых возможностей, которые появились в компоненте и редакторе TImageList для Delphi R101 (2016 год, Version 24)
  4. Like
    Pax Beach отреагировална mrseagull в Как уменьшить нагрузку на ЦП?   
    Удобная программа, http://dbg-spider.net/
  5. Like
    Pax Beach отреагировална estra в [Android] #13#10   
    Принтер
    Нужно передать принтеру строку с командами, разделенными #13#10. Но когда я подготавливаю строку для передачи
    // Content - TStringBuilder b := BytesOf(Content.GetString); b := TEncoding.Convert(TEncoding.UTF8, TEncoding.ANSI, b); ClientSocket.SendData(b); подозреваю, что символы #13#10 меняются на что то другое (о чем косвенно свидетельствует скрин в первом посте), в следствии чего принтер не понимает переданные команды.
  6. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Bitmap из MemoryStream   
    копируются данные через Assign или CopyFrom
  7. Like
    Pax Beach отреагировална krapotkin в Bitmap из MemoryStream   
    мы возвращаем вызывающей процедуре ссылку на уже разрушенный объект ???
  8. Like
    Pax Beach получил реакцию от Rusland в Приостановить запущенный сервис   
    Сервис занимает в памяти 10-15 Мб, процессор не ест пока стоит.
    Останавливать его большой нужды для своих задач не вижу, кроме сервисной для сисадминов.
  9. Like
    Pax Beach отреагировална Kitty в Компонет TBecon и эмулятор   
    C++ Builder 10.1 Berlin
    1. Создаем эмулятор и запускам его.
    2. Запускаем студию и создаем новый проект. В Target указываем созданный эмулятор.
    3. Переносим на форму компонент TBecon. Никакого кода.
    4. Запускаем компиляцию в режиме дебаг. Видим, что приложение начинает запускаться на эмуляторе однако получаем серию ошибок.
    Вопрос: можно ли запускать на эмуляторе проект, в котором используется TBecon? Если да, то как избежать этих ошибок?
    Спасибо.
     

  10. Like
    Pax Beach отреагировална Rusland в Приостановить запущенный сервис   
    В общем решил я проблему следующим образом - останавливаю поток, а не сервис (все равно кроме потока в сервисе ничего нет). Пока мне этого хватит )
  11. Like
    Pax Beach получил реакцию от Rusland в Приостановить запущенный сервис   
    procedure TForm1.Button2Click(Sender: TObject); var LIntent: JIntent; begin Log.D('Try to stop'); LIntent := TJIntent.Create; LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.MyService')); TAndroidHelper.Activity.stopService(LIntent); end; Так останавливать сервис из приложения подойдет?
  12. Like
    Pax Beach отреагировална Rusland в Приостановить запущенный сервис   
    Готовый проект DProj.zip
  13. Like
    Pax Beach получил реакцию от Rusland в Приостановить запущенный сервис   
    В названии сервиса нет ошибки? Метод запуска такой префикс класса использует «com.embarcadero.services.».
     
    class procedure TLocalServiceConnection.StartService(const AServiceName: string); var   LIntent: JIntent;   LService: string; begin   LIntent := TJIntent.Create;   LService := AServiceName;   if not LService.StartsWith('com.embarcadero.services.') then     LService := 'com.embarcadero.services.' + LService;   LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString(LService));   TAndroidHelper.Activity.startService(LIntent); end;  
  14. Like
    Pax Beach отреагировална Rusland в Получение GPS координат из сервиса   
    Вот собрал проект на 10-ке LocationSensorPatch3.rar
  15. Like
    Pax Beach отреагировална Rusland в Получение GPS координат из сервиса   
    Нет, я неправ. Сейчас проверил. в 12:07 закрыл программу, значок GPS пропал и не появляется до настоящего времени (12:47)
  16. Like
    Pax Beach отреагировална Rusland в Получение GPS координат из сервиса   
    Pax Beach, Насколько помню, там дело обстоит так (и это касается сервисов в целом), после закрытия приложения - сервис отключается и не подает признаков жизни, но через некоторое время снова начинает работать. Я думаю это сделано специально, чтобы в случае какой-нибудь ошибки, суметь добраться до Настроек и удалить приложение  
    То есть по идее через какое-то время значок GPS снова появится... вот только не знаю чему это время равно.
  17. Like
    Pax Beach отреагировална rareMax в BroadcastReceiver Library   
    1. Немного опиши для чего она нужна.
    2. Добавь директивы {IFDEF Android} в местах, где используются чисто андроидные библиотеки
  18. Like
    Pax Beach отреагировална Brovin Yaroslav в Delphi Berlin iso установка проблема   
    Читаем внимательно правила форума. А именно 3.3.
    P.S. Это не официальный сайт эмбаркадеро, а форум по решению задач и проблем. На всякий случай скину вам ссылку: http://www.embarcadero.com/. Если вы чем-то не довольны, то прошу опять же на http://www.embarcadero.com/.
  19. Like
    Pax Beach отреагировална Rusland в [Статья][Android] Приложение будильник. Использование AlarmManager в FireMonkey на Андроиде   
    Нужно запустить Monitor.bat - он показывает все что происходит в устройстве. Путь такой (если у вас Delphi 10): C:\Users\Public\Documents\Embarcadero\Studio\17.0\PlatformSDKs\android-sdk-windows\tools\monitor.bat
  20. Like
    Pax Beach отреагировална Brovin Yaroslav в Как получить значение свойства объекта стиля, используя StylesData?   
    Нужно помнить, что StylesData при запросе значения свойства какого-либо объекта стиля всегда возвращает TValue.
    Поэтому например в вашем случае вы допускаете сразу две ошибки по одной в каждом варианте:
     
    Ошибка 1
    Не правильно:
    ListBoxItem.StylesData['text.width'].asInteger Свойство Width вещественного типа, поэтому при попытке конвертировать TValue в Integer этим способом приведет к ошибке "Invalid class typecast", так как представления вещественного и целого чисел отличаются.
     
    Правильно:
    ListBoxItem.StylesData['text.width'].AsExtended Ошибка 2
    Не правильно:
    ListBoxItem.StylesData['text.text'].asString В этом случае вы пытаетесь представить содержимое TValue, как строка. Но при таком обращении через методы, начинающиеся с приставки "As", идет попытка конвертации чистого значения вещественного числа (указатель в памяти) в строку. Естественно, что такая конвертация пройдет не правильно и закончится все той же ошибкой "Invalid class typecast"
     
    Правильно:
    ListBoxItem.StylesData['text.text'].ToString
  21. Like
    Pax Beach получил реакцию от zairkz в Генерация QR-кода на Android   
    На самом деле, вопрос с правильной отрисовкой на Bitmap в Android тоже не удалось решить.
    Чтобы в приложении Android правильно отображался QR код, пришлось рисовать на канве TImage.Canvas, а не на канве TImage.Bimap.Canvas.
    Поэтому при сохранении изображения приходится делать screenshot в TBitmap и далее resample в нужно разрешение изображения (через Canvas.DrawBitmap).
    function TfmMainQRShare.getFinalBitmap(Img: TImage): TBitmap; var b: TBitmap; begin b := Img.MakeScreenshot; result := TBitmap.Create; result.Assign(b); result.SetSize(512,512); if result.Canvas.BeginScene() then try toast('OK'); result.Canvas.Clear(TAlphaColors.White); result.Canvas.Fill.Bitmap.WrapMode := TWrapMode.TileStretch; result.Canvas.DrawBitmap(b, RectF(, , min(b.Width, b.Height), min(b.Width, b.Height)), RectF(, , 512, 512), 1, true); result.Canvas.EndScene; finally result.Canvas.EndScene; end; end;  
    В итоге, при сохранении получаем только часть изображения (видно ниже). Почему оно искажается при ресамплинге, пока не знаю.

     
    Если Canvas.DrawBitmap не делать, а сразу result := Img.MakeScreenshot, тогда все ок — но в Bitmap сохраняется вся канва TImage, а не нужная область, что не правильно.
     
  22. Like
    Pax Beach получил реакцию от zairkz в Генерация QR-кода на Android   
    я неправильно сделал, что не добавил строчку:
    Canvas.Stroke.Kind := TBrushKind.Solid; рисовать квадратами, тоже хорошо получилось.
     
    Модуль в моей редакции (в архиве выше) под Windows хорошо с UTF8 работает, а вод под Android разбираюсь. Спасибо за указание на ошибку.
     
  23. Like
    Pax Beach отреагировална rareMax в Генерация QR-кода на Android   
    Добавьте это
    {$ZEROBASEDSTRINGS ON} Инфа: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Zero-based_strings_(Delphi)
  24. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в Генерация QR-кода на Android   
    могу подсказать в какую сторону копать. строки в ANDROID/IOS начинаются с 0, а там не заметил чтобы это учитывалось.
    Если сделаете, выложите. Всем будет полезно
  25. Like
    Pax Beach отреагировална Brovin Yaroslav в Почему на мобильных платформах у меня не рисуется окружность?   
    В вашем случае вы не задали тип кисти Canvas.Stroke. Более, чем уверен, что на устройстве там стоит TBrushKind.bkNone. Вашу проблему решит задание типа кисти TBrushKind.bkSolid.
    procedure TForm5.Image14Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var EllipseRegion: TRectF; begin Canvas.Stroke.Kind := TBrushKind.bkSolid; Canvas.Stroke.Color := TAlphaColorRec.Red; EllipseRegion := TRectF.Create(TPointF.Create(100, 100), 20, 20); Canvas.DrawEllipse(EllipseRegion, 1); end;  Хорошая практика отрисовки в FMX полагает, что вы полностью инициализируете все кисти, необходимые вам для отрисовки.
    Так же обратите внимание, что канва для формы и всех контролах, размещенных на ней, всегда существует в одном экземпляре. И правилом хорошего тона, является использовать канву, переданную через параметры события отрисовки.
×
×
  • Создать...