-
Постов
79 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Весь контент Кривяков Виталий
-
Наверное самый простой способ, это поменять прототип функции на function TTelegramBot.API<T>(const Method: String; Parameters: TDictionary<String, TValue>): TtgApiResponse<T>; И возвращать Result := TtgApiResponse<T>.FromJSON(lHttpResponse.ContentAsString); Ну и соответственно уничтожать объект в вызывающем методе, после того, как он не нужен.
-
Добрый день, коллеги! Хочу рассказать о выходе нашего нового продукта 1С-Рарус:Мобильное РМК Приложение написано в 10 версии Delphi (Seatlle), предназначено для автоматизации рабочего места кассира. Есть встроенный демо режим. Работа пока возможна только на планшетах, поддержка смартфонов в будущем. Готов воспринять критику, пожелания и ответить на вопросы.
-
Android 6 + XE7 + Exception = Крах приложения
-
Итак, год спустя описываю решение проблемы. Исследования проводил в Берлине, но думаю рецепт подойдет и для младших версий. 1. Ошибка существует в файле FMX.TextLayout.GPU, поэтому копируем его в проект. 2. Убираем мусор при отрисовке кропнутого символа. Ищем в файле следующий фрагмент: ColoredGlyph := TFontGlyphStyle.ColorGlyph in Rec.Glyph.Style; if ColoredGlyph then TCustomCanvasGpu(ACanvas).ModulateColor := $FFFFFFFF; ACanvas.DrawBitmap(Rec.Bitmap, SrcR, R, Opacity); if ColoredGlyph then TCustomCanvasGpu(ACanvas).ModulateColor := LRun.Color; и заменяем его на if not R.IsEmpty then begin // Disable draw empty rect ColoredGlyph := TFontGlyphStyle.ColorGlyph in Rec.Glyph.Style; if ColoredGlyph then TCustomCanvasGpu(ACanvas).ModulateColor := $FFFFFFFF; ACanvas.DrawBitmap(Rec.Bitmap, SrcR, R, Opacity); if ColoredGlyph then TCustomCanvasGpu(ACanvas).ModulateColor := LRun.Color; end; Пояснение: при расчете области отрисовки R символа, мы можем получить "отрицательный размер", где Bottom будет меньше чем Top. Соответсвенно такой же неправильной становиться область источника SrcR и на экран вылазит мусор. 3. От мусора избавились, но если присмотреться к нижней границе текста, то можно увидеть, что отрезка не ровная, одни символы отрезаны больше, другие меньше. Для этого нужно исправить алгоритм расчета области отсечения. Для этого ищем комментарий //Checking for lines lower than bottom border - с него начинается ветка, в которую нужно внести изменения. Чуть далее ищем код Rec := AddOrGetChar(nil, Run.Chars[K], ChDic, Run.Font); X := MaxSize.Y - FFrame.Last.TopLeft.Y - Rec.Glyph.VerticalAdvance * FScaleFactor; и меняем его на Rec := AddOrGetChar(LayoutCanvas, Run.Chars[K], ChDic, Run.Font); X := MaxSize.Y - FFrame.Last.TopLeft.Y - ((Rec.SrcRect.Height + Rec.Glyph.Origin.Y) * FScaleFactor); Здесь пояснения дать сложнее, скажу только, что разработчики проигнорировали тот момент, что символы имеют разные размеры (например . и Ж) и считают отсечение не по размеру глифа символа а по экранному размеру символа, т.е. он будет одинаковый для всей строки, что неправильно, так как в дальнейшем данное отсечение применяется к глифу символа. P.S. А куда переехал CodeCentral, не нашел его в Берлине?
-
Добрый день! В стандартных компонента есть механизм по встраиванию своих функций в SQLite. ... // создаю встроенную функцию ru_lower F1 := TFDSQLiteFunction.Create(nil); F1.DriverLink := WC1; F1.FunctionName := 'ru_lower'; F1.ArgumentsCount := 1; F1.OnCalculate := ru_lower; ... procedure TORMmanager.ru_lower(AFunc: TSQLiteFunctionInstance; AInputs: TSQLiteInputs; AOutput: TSQLiteOutput; var AUserData: TObject); begin AOutput.AsString := AInputs[0].AsString.ToLower; end; SQL: select name from users where ru_lower(name) like '%иван%' Запрос вернет все имена содержащие иван в любом регистре.
-
Косяк уже давно.
-
Добрый день! На одном из планшетов столкнулся со следующей проблемой: нажатие на ввод на виртуальной клавиатуре приводит к переводу строки внутри TEdit. Планшет Асеr b1-720 Android 4.4.2 Данное поведение происходит как в приложении собранном в Seattle, так и в Berlin. C чем может быть связано такое поведение?
-
Рекомендую в коде проверять наличие общих папок. Недавно столкнулся на 6 андроиде с тем, что GetSharedDocumentPath не существовала. Просто создал ее и приложение заработало.
- 6 ответов
-
- intent
- access denied
-
(и ещё 1 )
C тегом:
-
Только что поставил. Вот инструкция от производителя: Using the Feature Installer - If you installed Delphi, C++Builder or RAD Studio 10.1 Berlin using the feature installer, please follow these steps to install your Add-On Pack: 1. Register the license in the license manager 2. Launch the Feature Manager (docwiki.embarcadero.com/RADStudio/Berlin/en/Feature_Manager) to add the new features to the product
-
Я уже писал об этой проблеме. Её не решить, что-то совсем внутри XE7 делает некорректно.
-
Добрый день! Похожая ситуация была, когда я не уследил за обращениями из не основного потока к экранным компонентам - работает, работает, а потом бац и "Все, они пропали" (с) South park.
-
Нет такого оборудования, которое уникально и доступно на компе. Задача программной защиты обычно использует совокупность хардварных идентификатров и алгоритмы, которые допускают частичное изменение их. Но это для тиражных продуктов, если вам не сильно критично сильная защита - то проще всего ориентироваться на дату установки Windows.
-
Поменять цвет статус бара Delphi [XE7] - Android
Кривяков Виталий ответил Satellite вопрос в Android
Да, тоже столкнулся с тем, что цвет становиться белым и не меняется. Вот версия без необходимости менять исходники. SystemBar.zip -
Добрый день! Обновился Андроид до 6 версии на моем нексусе. Появилась неприятная проблема - любое исключение в программе, собранное в XE7, приводит к краху приложения, вне зависимости от того, пытаюсь я его перехватить или нет. Специально пробовал на пустом приложении, в котором одна кнопка и вызов исключения. Проверял на XE10 - все в порядке. Как понять причину и есть ли возможность исправить эту проблему?
-
Окружность также можно описать с помощью параметрического уравнения: высчитываешь центр (X0, Y0) Определяешь угол поворота 2*Pi*Percent (Percent от 0 до 1) Считаешь координаты точки окружности, только нужно учесть разницу в координате Y (на экране она растет сверху вниз)
-
Проверил - действительно, есть такое поведение. Постараюсь выложить исправление в ближайшее время.
- 21 ответ
-
- User interface
- slide
-
(и ещё 2 )
C тегом: