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

Лидеры

  1. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      4

    • Постов

      842


  2. OnePeople

    OnePeople

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


    • Баллы

      2

    • Постов

      321


  3. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      1

    • Постов

      2 517


  4. RoschinSpb

    RoschinSpb

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


    • Баллы

      1

    • Постов

      187


Популярный контент

Показан контент с высокой репутацией 13.11.2017 во всех областях

  1. Ознакомьтесь с информацией на страницах: Android Devices Supported for Application Development (Berlin) ABI Management - Supported ABIs
    2 балла
  2. Программа для скачивания минусовок DX-minus b259.rar
    1 балл
  3. Это исправил. Как и звук. А здесь наверно добавлю webbrowser, там потом перекидывает на страницу проверки на бота( А вот баг с отрисовкой, это не мой косяк, а делфи procedure TForm1.rTopBackgroundPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var BitmapSource: TBitmap; BitmapDest: TBitmap; DestWidth: Integer; DestHeight: Integer; BitmapSourceRect: TRectF; BitmapDestRect: TRectF; lt: TLayout; begin BitmapSource := lbMinusList.MakeScreenshot; BitmapSourceRect := TRectF.Create(TPointF.Create(lTop.Position.X, lTop.Position.Y), lTop.Width, lTop.Height); DestWidth := Max(0, Round(rTopBackground.Width)); DestHeight := Max(0, Round(rTopBackground.Height)); BitmapDest := TBitmap.Create(DestWidth, DestHeight); BitmapDestRect := TRectF.Create(0, 0, BitmapDest.Width, BitmapDest.Height); if BitmapDest.Canvas.BeginScene then try BitmapDest.Canvas.DrawBitmap(BitmapSource, BitmapSourceRect, BitmapDestRect, 1); finally BitmapDest.Canvas.EndScene; end; rTopBackground.Fill.Bitmap.Bitmap.Assign(BitmapDest); BitmapSource.Free; BitmapDest.Free; end; В rTopBackground лежит GaussianBlurEffect, а с эффектами в делфи беда(((
    1 балл
  4. Обрабатывать OnDblClick - это и есть изобретение своего велосипеда и выполнение того, что должен выполнять сам компонент. Все просто в простейших контролах типа кнопки, когда не предусмотрено ни какой другой логики кроме выполнения события. А вот для TSwitch не всё так однозначно, там поведение уже более сложное (можно его переключить сдвинув пальцем и это не будет кликом). В Grid совсем все сложно. Логика поведения навороченная и любая отсябятина её поломает с непредсказуемыми последствиями. Клик произошёл. Так что выделена ячейка должна быть под точкой клика. А кто-то (и таких людей наберется не мало) может сказать, "по клику я хочу сам выделить ячейку ту, которую считаю нужной, а не ту на которую ткнул пользователь". Допустим в одном столбце картинка во втором значение и по клику на картинку я хочу выделить соседнюю ячейку с изменяемым параметром. Кроме того не факт, что под курсором оказалась "не задизабленая" ячейка, об этом должен не забыть подумать прикладной программист. Скроллирование тут при том, нажатие и отпускание мыши (пальца) происходит примерно в рандомном месте (два раза). На нажатие-отпускание пальца реакция может быть разной, скроллирование может остановиться/замедлится/пойти в другую сторону, при долгом нажатии остановиться и выделиться ячейка. OnCellDblClick ведь сериализировать нельзя на единый обработчик кликов. Так и да, сделать два обработчика вместо одного — воистину адская по сложности работа :o) Да и странно, что таблица реагирует на нажатие также как кнопка, хотя всякое бывает. Если продолжить философские рассуждения, то на контролах не должно было быть событий относящихся к аппаратным средствам. Потому, что на разных платформах может быть мышь, а может сенсорный экран что на первый взгляд похоже но не совсем одно и то же, а может быть и то и другое, кстати и в этом разобраться очень трудно. Должны быть события относящиеся именно к контролам, к примеру вместо OnClick на кнопкообразных контролах должно быть что-то типа OnExecute. Может кликнули мышью, может ткнули пальцем, может нажали пробел на клавиатуре, может сдвинули пальцем переключатель, может еще что угодно о чем нам знать не обязательно и за это отвечает контрол — но в итоге произошло нечто в результате чего мы должны выполнить некоторое действие. Также и в Grid можно десятью способами реагировать на разные клики/жесты в разных местах на разных платформах (включая будущие). На сколько правильно остаётся на совести компонента. Прикладной программист обрабатывает события не вдаваясь в подробности о том, в результате каких манипуляций они произошли, но реализует логику работы о которой можно догадаться из названия или краткой справки. Например OnSelectCell - неважно что произошло в подлунном мире, но грид хочет знать можно ли выделить определенную ячейку. OnSelChanged - опять, ни кого не интересует каким образом это произошло, но выделенная ячейка поменялась. OnExecute - надо выполнить какое-то действие. OnAltExecute - надо выполнить какое-то альтернативное действие и т.п. К сожалению изначально на эту тему не задумывались. Сохранили совместимость с виндовой VCL там, где этого не следовало делать. Зато поломали совместимость там где в этом не было серьезной необходимости Caption -> Text; Left, Top: Integer -> Position.X, Position.Y: Single; Font.Color -> FontColor А ведь если бы можно было VCL-ный dfm запустить на андроиде... не, это было бы конечно не так круто, как натянуть грид на грани вращающегося куба, но гораздо более востребовано на практике.
    1 балл
  5. Отлично! Теперь нормально работает: перемотка, регулировка звука. Стало удобнее кликать по полоскам. После завершения воспроизведения, значок меняется. Ну и главное теперь видно, что загрузка началась, даже если она сразу же завершилась :). Был замечен другой баг, но пока не понял, что предшествовало его появлению. В этот момент нельзя свернуть окно, кнопка просто не реагировала. Ещё косяк, проценты в регулировке звука не совпадают с системным регулятором. Выставляю в программе 50%, а в системном меняется на 67 (из 100), 36% = 55 и т.д. При этом 100% в приложении = 100 в системе. Стоит добавить поиск, может даже алфавитный указатель
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...