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

Tumaso

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

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

  • Посещение

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

    39

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

  1. Thanks
    Tumaso отреагировална ENERGY в Размытие текста у функции Canvas.FillText   
    Native Api (google translate ) :
    https://github.com/OneChen/FMXNativeDraw (там же ссылка на описаниеl)
    Равиль сделал на основе этого модуля готовые компоненты:  
    https://github.com/rzaripov1990/ZMaterialComponents
  2. Like
    Tumaso получил реакцию от Alisson R Oliveira в Firemonkey TTakePhotoFromCameraAction.OnDidFinishTaking causes my app to restart   
    Пример моего кода:
    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;  
  3. Like
    Tumaso отреагировална ArturAD в [TMapView] [Android] Как сделать скриншот TMapView?   
    Может пригодится кому нибудь:
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      MapView1.Snapshot(SnapshotReady);
    end;
    procedure TForm1.SnapshotReady(const Bitmap: TBitmap);
    begin
      Image1.Bitmap.Assign(Bitmap);
    end;
  4. Like
    Tumaso отреагировална elGringo в TListBox. Исключить нажатия на прокрутке. Как?   
    Решил свой вопрос. 
    ListViewItem.Selectable:=false;
    Обработку итемов вынес в OnTap  ListViewItem
     
    Теперь прокручивается без активации итемов. А на тапе по итему - обработка контролов.
     
  5. Like
    Tumaso отреагировална IVGSoft в Обработка анимированных GIF по рецепту китайского коллеги   
    В этом участке кода есть одна маленькая ошибка. Иногда это приводит к тому, что на некоторых кадрах теряется прозрачность.
    Я заменил на вот такое :
    GIF_DISPOSAL_BACKGROUND: begin LFrame.FDisbitmap.Clear(LLocalPalette[LGraphicsCtrlExt.ColorIndex].Color); MergeBitmap(tmp, LFrame.FDisbitmap, Bounds(0, 0, LFrameWidth, LFrameHeight), LFrame.FPos.x, LFrame.FPos.Y); end;  
  6. Like
    Tumaso получил реакцию от d7d1cd в Доступ к COM порту   
    У WinSoft (http://www.winsoft.sk) есть компоненты для работы с com-портами в андроиде. Либа платная, тем не менее вашу задачу решает.
  7. Like
    Tumaso отреагировална krapotkin в Странное поведение переменной integer   
    я тут соглашусь со Станиславским. не верю )
    дайте код 
    High - это ИНДЕКС последнего элемента массива
    если в массиве 1 элемент, то индекс его равен 0
  8. Like
    Tumaso получил реакцию от Олег Киреев в Приложение для упорядоченного хранения любой информации в виде jpg, docx, pdf, rar файлов,просто текст который можно отправить в Word отображающейся в дереве v.9.0   
    gelo1
    Вот если честно, над интерфейсом вам нужно усиленно поработать в плане редизайна. Кнопки управления расположены неудачно, цветовая тема лично меня напрягает, не используется вся доступная область на экране.
  9. Like
    Tumaso получил реакцию от Ingalime в [Android] Есть ли разница под каким SDK собрано приложение   
    Абсолютно неправильное понимание.
    Гугл анализирует 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
  10. Like
    Tumaso отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    С++ ваше всё, наше всё Делфи
  11. Like
    Tumaso получил реакцию от МихаилЪ чайковЪ в RAD Studio 10.2.3 Когда и чего ждать?   
    Может поувольнять нахрен всех индусов и отдать разработку в Россию? ))
  12. Thanks
    Tumaso получил реакцию от DMS в Куча асинхронных потоков (Андроид)   
    Асинхронность работает надежно даже в андроид
    Вопрос в другом - каким образом вы будете непосредственно заполнять комбобоксы загруженными списками. тут либо с использованием synchronize либо через внутренние списки в потоках (откуда главный поток по готовности сам заполняет комбобоксы)
  13. Like
    Tumaso получил реакцию от krapotkin в Заполнение анкеты (под Андроидом)   
    Определяй, не перекрывается ли активный TEdit клавиатурой. Если перекрывается, то смещай все едиты вверх, чтобы было видно, в какое поле и что вводишь.
    Я бы разместил все TEdit например на TRectangle, ловил событие FormVirtualKeyboardShown, определял размеры перекрываемой области и в случае необходимости двигал TRectangle. А на событие FormVirtualKeyboardHidden возвращал бы все назад.
    Тут только есть нюанс - FormVirtualKeyboardShown не всегда вызывается с правильными размерами (Эмбе над этим еще видимо долго работать))) ), поэтому нужно отдельно хранить правильное значение размеров клавиатуры (оно возвращается при первом вызове FormVirtualKeyboardShown)
  14. Thanks
    Tumaso получил реакцию от DMS в Заполнение анкеты (под Андроидом)   
    Определяй, не перекрывается ли активный TEdit клавиатурой. Если перекрывается, то смещай все едиты вверх, чтобы было видно, в какое поле и что вводишь.
    Я бы разместил все TEdit например на TRectangle, ловил событие FormVirtualKeyboardShown, определял размеры перекрываемой области и в случае необходимости двигал TRectangle. А на событие FormVirtualKeyboardHidden возвращал бы все назад.
    Тут только есть нюанс - FormVirtualKeyboardShown не всегда вызывается с правильными размерами (Эмбе над этим еще видимо долго работать))) ), поэтому нужно отдельно хранить правильное значение размеров клавиатуры (оно возвращается при первом вызове FormVirtualKeyboardShown)
  15. Thanks
    Tumaso получил реакцию от DMS в GetDocumentsPath и write external storage   
    Не требуется
  16. Like
    Tumaso отреагировална ENERGY в Как нарисовать круглый TImage   
    С помощью маски можно любую форму.TBitmap.CreateFromBitmapAndMask().
    В результате получим изображение с прозрачностью, в данном случае звезда и прозрачный фон. 

    procedure TForm1.Button1Click(Sender: TObject); var ImageRes: TResourceStream; Result: TBitmap; tmpMS : TMemoryStream; begin ImageRes := TResourceStream.Create(HInstance, 'IMAGE', RT_RCDATA); try Image1.Bitmap.CreateFromStream(ImageRes); Image2.Bitmap.LoadFromFile('c:\temp\MaskedBitmap\Images\Mask.png'); Result := TBitmap.Create; Result.CreateFromBitmapAndMask(Image1.Bitmap, Image2.Bitmap); // applying alpha channel to Bitmap - workaround. If you can improve write here how tmpMS := TMemoryStream.Create; Result.SaveToStream(tmpMS); Result.LoadFromStream(tmpMS); tmpMS.Free; Image3.Bitmap.Assign(Result); finally ImageRes.Free; Result.Free; end; end;  
    MaskedBitmap.zip
  17. Like
    Tumaso получил реакцию от Rusland в Управление окном заставки   
    Изменить главную форму можно простым Application.MainForm := fmMain;
  18. Thanks
    Tumaso получил реакцию от DMS в Разочирование   
    Код также пишешь, как пишешь на русском языке?
  19. Haha
    Tumaso получил реакцию от Brovin Yaroslav в Разочирование   
    Код также пишешь, как пишешь на русском языке?
  20. Like
    Tumaso получил реакцию от МихаилЪ чайковЪ в Нужен нормальный JSON парсер   
    А меня System.JSON полностью устраивает. Ошибок парсинга валидных данных не было ни разу, скорость на нормальном уровне. Гигабайтные данные правда не парсирую, но мне это и не нужно
  21. Thanks
    Tumaso получил реакцию от DMS в Асинхронный NetHTTPClient   
    DMS,
    простейший пример (без обработки эксепшенов) отдельного класса на базе TThread:
    В основном потоке создаешь нужное количество экземпляров (можно начать с одного), запускаешь, потом при необходимостии передаешь команду на выполнение/получаешь ответ выполненной команды. например так (простейший пример):
    LThread := TAsyncHttp.Create;
    LThread.Start;
    LThread.Command := 'http://www.site.com/data?param=value';
    while not LThread.IsReady do
     Sleep(1);
  22. Thanks
    Tumaso получил реакцию от DMS в Асинхронный NetHTTPClient   
    да, согласен
    именно так, только замените TNetHTTPClient на THTTPClient
     
  23. Like
    Tumaso отреагировална Andrey Efimov в Запрос "опасных" разрешений в рантайме   
    Добавляем метод onRequestPermissionsResult в приложение
  24. Like
    Tumaso получил реакцию от Виталий Иванов в Нужен нормальный JSON парсер   
    А меня System.JSON полностью устраивает. Ошибок парсинга валидных данных не было ни разу, скорость на нормальном уровне. Гигабайтные данные правда не парсирую, но мне это и не нужно
  25. Like
    Tumaso получил реакцию от rareMax в Нужен нормальный JSON парсер   
    А меня System.JSON полностью устраивает. Ошибок парсинга валидных данных не было ни разу, скорость на нормальном уровне. Гигабайтные данные правда не парсирую, но мне это и не нужно
×
×
  • Создать...