ENERGY

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

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

  • Посещение

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

    48

ENERGY стал победителем дня 16 сентября

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

1 Подписчик

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

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

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

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

Включить
  1. У формы есть свойство Focused. MyControl := TControl(Focused.GetObject);
  2. ENERGY

    Кнопка Done

    У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается. Также, срабатывает событие OnExit компонента (напр TEdit).
  3. Если включить Full screen у формы, останется полоса?
  4. А в новом пустом проекте также?
  5. ENERGY

    Шифрование данных

    А какой Android у вас? С 6 и выше HTTPS не работает в Indy. Нужно использовать THttpClient
  6. ENERGY

    Шифрование данных

    Все переменные в пост https запросе шифруются, ничего делать не надо. Уже много раз обсуждали, что лучше использовать THttpClient ,вместо Indy компонентов. Т..к. https не работает на Android 6 и выше с Indy. И в целом он более стабильный чем Indy.
  7. ENERGY

    XCode версия

    Может кому то пригодится. Победить Linker Error 1 просто. И iOS SDK 11 и больше прекрасно компилиться и работает на Берлине. В логах ошибки пишет что ld: file not found: /System/Library/Frameworks/FileProvider.framework/FileProvider for architecture arm64 Значит нужно добавить его в SDK Tools -> Options -> SDK Manager - выбираем свой SDK и добавляем по аналогии с уже имеюищимися путями: Add: $(SDKROOT)/System/Library/Frameworks FrameworkName: FileProvider Далее ОК и обновляем кэш (Update Local File Cache). Сделайте Clean проекту на всякий случай, и та дам, все компилиться под Берлином и запускается на айфоне с IOS 11+ 64bit. Upd - но лучше поставить поставить последнюю версию Delphi, т.к. я заметил баг с системным тулбаром он не перекрашивается, в зависимости от цвета текущей формы..
  8. ENERGY

    Плавающая кнопка

    Да это в стилях убирается. Через SpeedButton даже проще, согласен..
  9. Native Api (google translate ) : https://github.com/OneChen/FMXNativeDraw (там же ссылка на описаниеl) Равиль сделал на основе этого модуля готовые компоненты: https://github.com/rzaripov1990/ZMaterialComponents
  10. Проблема в том что ваш битмап растягивается ,т.к. у него не правильный масштаб (масштаб 1, а нужен системный который больше). Значит 1. Получите текущий Scale из системы (если отнаследовались от TControl, то есть Scene.GetSceneScale). 2. Установите правильный размер у битмапа - Bitmap.SetSize(Ceil(Width * Scale), Ceil(Height * Scale)) Вместо Ceil можно Trunc попробовать, что лучше. BitmapScale не трогайте (его нужно менять, если рисуете векторный Path ). Теперь попробуйте вывести на него текст, а затем этот битпам отобразить на PaintBox. Должно все получиться с высокой вероятность, я так отрисовываю примитивы, напр. круг через китайский модуль NativeAPI, чтобы было сглаживание на Android/iOS.
  11. ENERGY

    Плавающая кнопка

    В этом варианте при нажатии будет появляться сервый прямоугольник. Не идет. Вариант Равиля медленный, кнопка будет часто перерисовыватся, круг + картинка + тень. Поэтому лучший вариант это сделать кнопку в виде обычной картинки. TImage или TGlyph. Я делал на TGlyph чтобы все картинки были в ImageList. Подготовьте 3 пнг картинки с полностью готовой кнопкой, с тремя масштабами. Scale 1 = 56x56 Scale 2 = 112x112 Scale 3 = 168x168 Поместите его в TImageList (обычно в глобальном Datamodule), добавьте свое изображение в список и добавьте 3 коэффициента масштабирования в исходное изображение (дважды щелкните элемент в списке «Источник изображений» в ImageList), в итоге одно изображение в TImageList будет иметь 3 scale. Поместите TGlyph на форму и выберите свой список изображений. Установите событие OnClick в Form OnCreate (поскольку Glyph1 не имеет OnClick по умолчанию в Object Inspector): Glyph1.OnClick := Click; Glyph1.HitTest := true; В OnClick добавьте этот код для анимации: procedure TForm2.TestClick(Sender: TObject); begin TAnimator.AnimateFloatWait(Glyph1, 'Opacity', 0.5, 0.2); TAnimator.AnimateFloat(Glyph1, 'Opacity', 1, 0.2); end; Или вы можете использовать TImage - это еще проще и меньше кода, чем выше.
  12. ENERGY

    Отловить GET, POST

    Может лучше напрямую использовать THttpClient и отправлять POST запросы? Опишите детали для чего это нужно.
  13. ENERGY

    Исчезли картинки

    Что то мне кажется это связано с этим багом https://quality.embarcadero.com/browse/RSP-18210 Загружайте картинки в ImageList - и затем отображайте в TGlyph. Таким образом у вас будут все картинки в едином хранилище, которое можно обновить. Глобальный ImageList можно хранить в DataModule, который должен загружаться раньше всех форм (в dpr файле).
  14. Есть такая процедура, function DelAmp(const Text: string): string; в FMX.Types. Которая 2 раза выделяет память для всей строки, и сканирует все символы в строке, в поисках &. TLabel.Text := 'Text'; - эта процедура выполнится 2 раза, на любой платформе. Чтобы она выполнилась 1 раз, нужно сделать TLabel.PrefixStyle := TPrefixStyle.NoPrefix; TText TText.Text := 'Text'; Процедура DelAmp выполниться в любом случае на любой платформе procedure TText.SetText(const Value: string); [..] begin if Text <> Value then begin NewText := ConvertText(DelAmp(Value)); [..] Стили состоят из множества TText элементов. Теперь представьте сколько ресурсов тратиться впустую. function DelAmp(const Text: string): string; var I, J: Integer; Sb: TCharArray; begin Result := ''; if Text <> '' then begin SetLength(Sb, Text.Length); I := Low(Text); J := 0; while I <= High(Text) do begin if (Text[I] <> '&') then begin Sb[J] := Text[I]; Inc(J); end else begin if ((I < High(Text)) and (Text[I + 1] = '&')) then begin Sb[J] := Text[I]; Inc(J); Inc(I); end; end; Inc(I); end; Result := string.Create(Sb, 0, J); end; end; Решение - скопировать FMX.Types в папку с проектом, и переделать функцию на: function DelAmp(const Text: string): string; begin Result := Text; end;
  15. Автор, мне кажется, если бы вы прикрепили пример проекта, где баг воспроизводится (напр на TImage.Bitmap), было бы больше помощи, втч и тем кто будет спрашивать в будущем об этом. Ваше решение не добавит производительности программе, тем более вы используете это для каждого Item в списке.