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

Вячеслав

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

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

  • Посещение

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

    3

Сообщения, опубликованные Вячеслав

  1. Всем добрый день. Как правильно переопределить родителя для аниматора и тем самым использовать один аниматор для нескольких объектов?

    Пытаюсь реализовать следующий принцип: на форме несколько прямоугольников и один аниматор. При клике по конкретному прямоугольнику он начинает менять координату. Вот чаcть кода:

    procedure TForm2.MoveRect(Rect: TRectangle);
    begin
      //задаем родителя для аниматора
      Rect.AddObject(AniMoveRect);
      //Анимируем координату Y прямоугольника
      AniMoveRect.PropertyName:='Position.Y';
      AniMoveRect.Inverse:=False;
      AniMoveRect.StopValue:=0;
      AniMoveRect.Start;
    end;
    
    procedure TForm2.RectangleClick(Sender: TObject);
    begin
      MoveRect(Sender as TRectangle);
    end;
    

    В итоге анимируется только один прямоугольник - тот, на который кликнули в первый раз. Не могу понять, в чем проблема.

    Данную тему читал, но в ней, насколько я понял, речь идет об одновременном использовании аниматора для двух объектов. 

    AniRects.zip

  2. Добрый день, господа. Столкнулся со следующей проблемой: На форме расположен TabControl с двумя вкладками. На каждой вкладке по Листбоксу. У того листбокса, который расположен на выделенной вкладке(при запуске формы), все нормально отрисовывается. У второго же Листбокса почему-то съезжают некоторые компоненты внутри Листбокситемов.
    Проблему решил путем "дрыгания" компонентов, на примере Комботрекбара:

    //данный Комботрекбар принадлежит одному из Листбокситемов
    ComboTrackBar31.Position.X:=ComboTrackBar31.Position.X+1;
    ComboTrackBar31.Position.X:=ComboTrackBar31.Position.X-1;

    После данной операции компонент встает на место, но мне данный подход не нравится, как-то слишком тупо.
    ComboTrackBar.Repaint - пробовал,
    ListBox.RealignContent - пробовал, безуспешно.

    post-359-0-87086800-1427122356.png

    post-359-0-99803900-1427122356.png

  3. В Windows все в порядке, тоже совсем недавно столкнулся с подобной задачей. Все Итемы невыделяемые, прокрутка плавная. Хотя на винде обычно все нормально работает. Может как-нибудь с фокусом попробуете поиграться?

  4. Вам обязательно нужно нажатие? Я в своем проекте просто назначил событие OnMouseUp на нужных компонентах. А в жесте строго зафиксировал область, в которой жест выполняется. Хотя, понимаю, это далеко не универсальный способ.

  5. В связи со всем вышесказанным, я бы попросил администраторов слегка поправить эту тему. В ней ТС явно просил указать цвет Rectangle. Ярослав привел пример с TColor, который будет работать некорректно. А название этой темы поменять, т.к. это не баг, а мое банальное незнание.

  6. Несомненно, это хороший совет, и нормальные программисты так и должны делать. Но, во-первых, справке Embarcadero далеко до идеала.

     

    А во-вторых, такой расчет чрезмерно оптимистичен. Пусть лучше мой компилятор будет параноиком и выдавать мне сотню предупреждений, чем рассчитывать, что я досконально изучил тему. Хуже от этого точно никому не будет.

  7. Всем добрый день. В этой теме Ярослав разъяснил, каким образом можно закрасить цветом прямоугольник, имея три составляющих цвета RGB. 

    Я столкнулся со следующей проблемой: при работе с TAlphaColor все корректно, но вот при работе с просто TColor составляющие Red и Blue меняются местами. Чтобы не быть голословным, набросал небольшой пример. 

    У меня, собственно, 2 вопроса: это я такой слепой и чего-то не вижу, или баг среды?

    И второе: почему при работе с TColor цвета получаются такими ущербными? Черный выглядит как серый и тд. Понимаю, всего 255 градаций, но все-равно как-то слишком низкое качество на выходе.

    post-359-0-29417800-1425387313.png

    Colors.zip

  8. Посмотрите последний пример анимации для XE7  - там анимируются не контролы, а скрин контролов. На телефоне не проверял - но по логике проблема когда много компонентов должна быть решена

     

    Также не нашел - может кто ткнет носом в пример с использованием MakeScreenshot.   

    Ибо тормоза просто неимоверные при наличии нескольких контролов на форме. Конечно понимаю - Андроид, со всеми вытекающими, но не до такой же степени)

    имелось в виду вот что:

    c:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\FireMonkey Desktop\ControlsDemo\

    внизу кнопка Switch to 3D and Back

  9. Господа, не подскажете, как в run-time поменять направление линейного градиента? В Design-time захожу в Fill, Gradient и кручу колесико, а вот в классе TGradient не нашел соответствующего свойства. Это я слепой, или это делается как-то иначе?

  10. А что при этом показано на экране? Некоторые эффекты в FM ОЧЕНЬ СИЛЬНО затормаживают отрисовку. И это не только с анимацией. К примеру, у меня таймер, показывающий сотые доли секунды плавно и четко, еле показывал десятые доли при наложении на него эффекта тени или свечения и т.п.

  11. Ура, проблема решена! Вернее, глюк остался, но теперь его влияние локализовано. Для меня важным было использование жестов при полноэкранном режиме отображения без рамки. В Delphi XE7 это достигается путем установки свойства формы FullScreen в True, при этом BorderStyle необходимо оставить Sizeable. Тогда жесты работают.

×
×
  • Создать...