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

Кривяков Виталий

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

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

  • Посещение

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

    12

Кривяков Виталий стал победителем дня 29 августа 2017

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

Информация

  • Пол
    Мужчина
  • Город
    Москва
  • Интересы
    Компьютеры, технологии, фитнес

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

2 204 просмотра профиля

Достижения Кривяков Виталий

  1. Привет! Недоступен твой сервер времени. Вот просто пример procedure TForm1.Button1Click(Sender: TObject); var CurrTime : TDateTime; begin IdTime1.Host := 'time.nist.gov'; CurrTime := IdTime1.DateTime; Label1.Text:=DateTimeToStr(CurrTime); end;
  2. Добрый день! Все проще, гораздо. Net := THTTPClient.Create; Net.BeginPost( procedure (const Value : IAsyncResult) begin AsyncResult(Value); // Вот тут можно вызвать любую процедуру, или просто обработать результат. end, URL, InputStream, OutputStream, Headers); В анонимной процедуре просто вызываете нужную процедуру, для интерактивной одну, для периодических запросов другую.
  3. Можно, по куче признаков: 1. classes.dex определенного размера 2. firemonkey и embarcadero - часто встречаются в манифесте. 3. Темный экран при старте. И.т.д.
  4. Реализация данного механизма кривая. Внутри захват изображения с камеры в отдельном потоке идет, и через синхронизацию десятки раз в секунду выбрасывается на экран. В 99 процентах случаев завершения работы программы без остановки камеры или реже при остановке камеры вы получите взаимоблокировку основного потока и потока граббера с камеры. К сожалению, это зарыто глубоко в FMX и без того, чтобы перекурочить исходники не получится исправить работу.
  5. Добрый день! 1. Посмотрите стек при возникновении "stack overflow", та будет видно, что привело к проблеме. 2. Анимации не будет. Анимация работает в основном потоке приложения. Создание формы тоже происходит в основном потоке, т.е на время создания формы анимация остановиться.
  6. Проверяйте, что работа идет в основном потоке, В неосоновном ловил такие проблемы.
  7. Я отказался пока от SVG, так как рассматривал его как вариант для отображения картинок кнопок - некрасиво, на маленьких размерах PNG выигрывает в качестве. Поэтому не заморачивался с тем когда вызывать код. Более правильно было бы сделать заплатку для FMX, но там такая реализация (через одно место), что только переносить исходники в проект, а это не дело. Для примера скриншот изображения 24х24 для Windows и Android
  8. Добрый день! Коллеги, хочу озвучить одну из причин, из-за которой может возникать ситуация " Иногда бывает что при вставке пути в TPath, компонент его отображает некорректно" Дело в том, что существуют сокращения в представлении данных и не все из низ TPath понимает, вот с чем столкнулся: Есть команда 'c' - рисование кривой. не буду вдаваться в подробности, можно найти в интернете описание, скажу только то, что данная команда содержит 6 чисел. В идеале должно быть: сX1 X2 X3 X4 X5 X6 Но очень часто (например в иконках Material Design) можно встретить: c-1.1 0-1.99.9-1.99 2 И на этой строчке парсер TPath падает с ошибкой, так как пытается сконвертировать '-1.99.9' в число, что не верно. В реальности данная запись соответствует двум числам -1.99 и 0.9. Для обхода проблемы я загружаю SVG в рантайме, и сроку пропускаю через корректор: function CorrectSVG(const Value: String): String; var SB : TStringBuilder; I: Integer; C : Char; begin SB := TStringBuilder.Create; try I := 0; for C in Value do begin if C='.' then Inc(I) else if not CharInSet(C, ['0'..'9']) then I := 0; if I=2 then begin SB.Append(' 0.'); I := 0; end else SB.Append(C); end; Result := SB.ToString; finally FreeAndNil(SB); end; end;
  9. Добрый день! Есть приложение под iOS. Если запускать из Delphi (Berlin), то все нормально. Как можно получить, или где найти ipa файл? В сертификат(developer) прописаны два устройства, как запустить приложение на другом айпаде, без его подключения к компу?
  10. Добрый день! 1. TListBox в 2 колонки. Высоту итемов рассчитывать на ходу. 2. TGridPanellayout - 2 колонки, 4 ряда 3. 8 TLayout-ов - расчет размеров и положения на лету.
  11. Добрый день! Столкнулся с проблемой вывода текста разного размера по одной линии. Не получается использовать BaseLine доступную для Firemonkey. Baseline - воображаемая прямая линия, проходящая по нижнему краю прямых знаков без учёта свисаний и нижних выносных элементов. В строке символы текста стоят на базовой линии, а нижние выносные элементы текста «свисают» с неё. Из описанного выше ясно, что выводимые символы должны лежать на это линии, но в реале как то все некорректно выводится. Сделал два примера VCL (черный фонт) и FireMonkey(черный полупрозрачный фонт), оказалось, что вывод текста осуществляется по разному, при одном и том же значении размера шрифта. Базовая линия в обоих примерах 356. Совмещаем отображение символов: GlyphsEqual.png Символы совпали, но базовая линия смещена. Совмещаем базовую линию: PosEqual.png Базовая линия совпала, как и верхний край контролов, а вот текст (серый) значительно ниже. А теперь собственно вопрос вопрос, где ошибка? Как рассчитать базовую линию для FMX? P.S. Про attributes у TTextLayout знаю. BaseLine.rar
  12. Вот набор библиотек для работы с JWT, к сожалению у Delphi там ограниченная поддержка. Может что-то удастся вытащить? https://jwt.io/
  13. Добрый день! Картинки правильно грузить в отдельном потоке в TBitmapSurface, так как последний, в отличии от TBitmap, корректно работает в потоках. Как скачаете, то можно сохранить в файл, для дальнейшего показа и отобразить на экране. Секция отображения на экране должна быть обязательно засинхронизирована с основным потоком. Общая схема такая.
  14. Добрый день! Было такое. Боюсь, что деталей не вспомню, но: На одном планшете при подключении сканера вылезло предупреждение, в котором смог сказать, что основную клавиатуру нужно показывать, на другом долго копался в настройках клавиатуры и что-то включил. К сожалению, сейчас нет сканера под рукой, не могу посмотреть, но то что лечится проблема - это точно.
×
×
  • Создать...