• 0
IVGSoft

Как сделать плавное раскрытие и свертывание этого компонента?

Вопросы

Добрый день!

Собственно вопрос в названии темы.

Пробовал прикрутить TFloatAnimation, но пока что-то безуспешно:(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 0

что не удалось? где код или картинка?

Изменено пользователем krapotkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
29 минут назад, krapotkin сказал:

что не удалось? где код или картинка?

Да ничего не удалось.

Код? Собственно все связывалось в DesignTime.

PropertyName = Height

Trigger = IsChecked=true

TriggerInverse = IsChecked=false

StartValue = 25

StopValue = 80

Duration = 0,5

 

Он вообще ни на один из триггеров не реагирует

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 минуты назад, Alexander сказал:

Самому сделать этот компонент из панели и кнопки

Ну, это как вариант. Но интересно использовать именно "коробочный" компонент

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

по моим наблюдениям, там не предусмотрено плавного выезда, хотя 82 рекурсивных запуска анимаций входят в комплект

так что лучше вариант с панелью и коробкой

а еще в чатике ярослава можно дернуть, он огласит окончательный приговор

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
procedure TExpander.SetIsExpanded(const Value: Boolean);
begin
  if FIsExpanded <> Value then
  begin
    if not (csLoading in ComponentState) then
      ApplyStyleLookup;
    FIsExpanded := Value;
    if FIsExpanded then
    begin
      FContent.Visible := FIsExpanded;
      if FButton <> nil then
        Height := FButton.Height + FContent.Height;
      Repaint;
    end
    else
    begin
      Repaint;
      FContent.Visible := FIsExpanded;
      if FButton <> nil then
        Height := FButton.Height;
    end;
    StartTriggerAnimation(Self, 'IsExpanded');
    if FButton <> nil then
      FButton.StartTriggerAnimation(Self, 'IsExpanded');
    DoExpandedChanged;
  end;
end;

вот там просто написано Height := и всё

если заменить на анимацию, будет анимация

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Спасибо! Я уже догадался, что анимация там не предусмотренна. Я уже слепил из панели и кнопки. Но это же костыль...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

почему костыль? просто нет подходящего компонента. для повторяемости можно слепить фрейм с нужными качествами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу