Tumaso

Пользователи
  • Публикаций

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

  • Посещение

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

    4

Tumaso стал победителем дня 23 марта

Tumaso имел наиболее популярный контент!

Информация о Tumaso

  • Звание
    Продвинутый пользователь

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Включить
  1. Пример моего кода: interface type TMyForm = class(TForm) { ... } procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); {$IFDEF ANDROID} procedure ImageFileMessageListener(const Sender: TObject; const M: TMessage); {$ENDIF} {$IFDEF IOS} procedure ImageFileFinish(Image: TBitmap); {$ENDIF} procedure ImageFromLibraryClick(Sender: TObject); { ... } private { ... } procedure ApplyImage(Image: TBitmap); { ... } end; implementation procedure TMyForm.FormCreate(Sender: TObject); begin {$IF DEFINED(ANDROID)} TMessageManager.DefaultManager.SubscribeToMessage(TMessageDidFinishTakingImageFromLibrary, ImageFileMessageListener); {$ENDIF} end; procedure TMyForm.FormDestroy(Sender: TObject); begin {$IF DEFINED(ANDROID)} TMessageManager.DefaultManager.Unsubscribe(TMessageDidFinishTakingImageFromLibrary, ImageFileMessageListener, True); {$ENDIF} end; {$IFDEF ANDROID} procedure TMyForm.ImageFileMessageListener(const Sender: TObject; const M: TMessage); begin try if M is TMessageDidFinishTakingImageFromLibrary then ApplyImage(TMessageDidFinishTakingImageFromLibrary(M).Value); except { code for exception handle } end; end; {$ENDIF} {$IFDEF IOS} procedure TMyForm.ImageFileFinish(Image: TBitmap); begin try ApplyImage(Image); except { code for exception handle } end; end; {$ENDIF} procedure TMyForm.ImageFromLibraryClick(Sender: TObject); {$IF DEFINED(ANDROID) OR DEFINED(IOS)} var LImageService: IFMXTakenImageService; LImageParams: TParamsPhotoQuery; {$ENDIF} begin if TPlatformServices.Current.SupportsPlatformService(IFMXTakenImageService, IInterface(LImageService)) then begin LImageParams.RequiredResolution := TSize.Create(1024, 1024); LImageParams.Editable := False; LImageParams.NeedSaveToAlbum := False; // под Android обработчик OnDidFinishTaking указывать нельзя, т.к. это может привести к рестарту программы // см. http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.MediaLibrary.TMessageDidFinishTakingImageFromLibrary LImageParams.OnDidFinishTaking := {$IFDEF IOS}ImageFileFinish{$ELSE}nil{$ENDIF}; LImageParams.OnDidCancelTaking := nil; LImageService.TakeImageFromLibrary({$IFDEF IOS}ImageFile{$ELSE}nil{$ENDIF}, LImageParams); end else raise Exception.Create('No image library access'); end; procedure TMyForm.ApplyImage(Image: TBitmap); begin { code for received image } end;
  2. Пользуюсь для отрисовки текста функцией Canvas.FillText. Но при выводе на канве текст получается немного размытым, особенно если сравнивать отображаемый текст с TLabel (тот же текст с теми же параметрами TFont у TLabel выглядит четче). Подскажите, как вывести текст без размытия?
  3. Embarcadero wiki: http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.MediaLibrary.TMessageDidFinishTakingImageFromLibrary
  4. А что, курсы сейчас доступны для покупки?
  5. Tumaso

    IOS: Exception class 6

    Ха, некоторые до сих пор на 4s сидят))
  6. Tumaso

    Лайки

    Вообще Ярослав ведь FGX native занимается, так что думаю - не должно стать ему неинтересно
  7. Tumaso

    Доступ к COM порту

    У WinSoft (http://www.winsoft.sk) есть компоненты для работы с com-портами в андроиде. Либа платная, тем не менее вашу задачу решает.
  8. Tumaso

    Баг в Tokio

    Это в 10.2.3?
  9. Tumaso

    Баг в Tokio

    у меня в 10.2.3 работает нормально в берлине не работало, приходилось извращаться между потоками и основным потоком
  10. gelo1 Вот если честно, над интерфейсом вам нужно усиленно поработать в плане редизайна. Кнопки управления расположены неудачно, цветовая тема лично меня напрягает, не используется вся доступная область на экране.
  11. Большой плюс токио в том, что там стала возможна корректная работа с TBitmap\TImage\TBitmapSurface\TBitmapCodecManager в потоках. В берлине все хорошо работает в основной треде программы, но в потоках сбоит.
  12. Абсолютно неправильное понимание. Гугл анализирует minSdkVersion и targetSdkVersion не для того, чтобы запрещать публикацию apk в google play, а для того, чтобы: 1. ограничить установку apk на устройства с sdk, меньшей чем minSdkVersion - т.е. если например minSdkVersion="18", то на Android ниже 4.3 гугл плей не даст установить 2. использовать на устройстве sdk наиболее приближенной к targetSdkVersion (но не превышая) - т.е. если например targetSdkVersion="23", то на Android 4.3 будет использовать sdk 18, на android 8.1 - sdk 23
  13. На винде много примеров реализации таймеров, выдающих дискретность 1 мс. Навскидку - у либы с glscene.org есть подобный таймер, банально сделан через отдельный поток, так что можно обойтись без тюнинга ОС
  14. Tumaso

    TNetHTTPClient и gzip

    Всё никак не могу разобраться, как все таки отправлять данные через TNetHTTPClient на сервер, сжатые gzip В исходниках модуля System.Net.HttpClient видно, что компонент умеет распаковывать сжатые данные, пришедшие от сервера. А как самому правильно сжать отправляемые данные на сервер?
  15. Увы, но нет проблем вытащить пароль из apk, если он лежит в открытом виде. Подпись приложения этому никак не препятствует (подпись гарантирует только отсутствие изменений, но не более того). Пароль внутри кода однозначно нужно хранить в разобранном виде, чтобы его было как можно сложнее узнать. Идеальный вариант - получать зашифрованный пароль с сервера, причем с использованием временных ключей шифрования.