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

Поиск сообщества

Показаны результаты для тегов 'accordion'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 1 результат

  1. Друзья, подскажите пожалуйста, каким образом можно реализовать меню в стиле аккордеон как тут https://jqueryui.com/accordion/. Требования к компоненту: 1) На форму бросается этот компонент, у него есть ширина и высота. 2) В этом компоненте должны добавляться итемы, хоть в дизайнтайме, хоть в рантайме, высота которых так же задается в свойствах компонента, которая будет для всех одна 3) Должна быть свойство у компонента, которое имеет значение истина или ложь, которое означает развернуть первый элемент при запуске, или все элементы свернуты 4) Развернутым должен быть только один элемент, если кликаем (тапаем) на свернутый и при этом есть развернутый элемент, то развернутый должен свернуться, а выбранный - развернуться 5) У каждого элемента есть заголовок и изображение в виде треугольника, означающее развернут элемент или нет.\ 6) Элементы разворачиваются на всю свободную область сдвигая свернутые ниже вниз, за пределы видимой области. 7) Если элементы находятся за пределами видимой области - появляется скролл. У меня есть уже наброски, но я уверен, что я все делаю не так. Может уже кто-то задавался этим вопросом и есть уже готовое решение, хотя бы частично? При необходимости предоставлю свой г...код, но лучше не стоит)) За основу я взял TVertScrollBox, в рамках которого все и происходит. В него я пока программно создаю столько TExpander'ов, сколько мне нужно - это итемы. Вот г...код: procedure TMainForm.AccordionAddItem(IdItem, CountItems: integer; IdRubricGood, CaptionText: string); var AccordionNewItem : TExpander; begin if AccordionItems[IdItem] <> nil then AccordionItems[IdItem].Destroy; AccordionNewItem := TExpander.Create(VertScrollBox_RubricsGood); With AccordionNewItem do begin Parent := VertScrollBox_RubricsGood; Align := TAlignLayout.Top; Text := CaptionText; StyleLookup := 'Expanderstyle'; Name := 'AccordionItem'+IntToStr(IdItem); Height := MainForm.Height-170; //(CountItems * 150)+29; IsExpanded := False; TagString := IdRubricGood; StylesData['text.OnClick'] := TValue.From<TNotifyEvent>(OnMaxMinPanelItems); end; AccordionItems[IdItem] := AccordionNewItem;end; Потом еще куча кода на отловить развернутые и свернутые итемы и вставку ListBox'внутрь открытого с нужным мне контеном: procedure TMainForm.OnMaxMinPanelItems(Sender: TObject); var AccordeonSelectedItem: TExpander; I:integer; begin AccordeonSelectedItem := TExpander(FindItemParent(Sender as TFmxObject,TExpander)); ListBoxGoods.Items.Clear; for I := 1 to RubricGoodsSize do begin if (AccordionItems[I].TagString = AccordeonSelectedItem.TagString) AND (AccordionItems[I].IsExpanded = False) then begin AccordionItems[I].BeginUpdate; RectangleRestourantHeader.Visible := False; AnimationAniIndicator(True); AccordionItems[I].IsExpanded := True; GoodList(AccordeonSelectedItem.TagString, Sender); AccordionItems[I].EndUpdate; AnimationAniIndicator(False); end else if (AccordionItems[I].TagString = AccordeonSelectedItem.TagString) AND (AccordionItems[I].IsExpanded = True) then begin AccordionItems[I].IsExpanded := False; RectangleRestourantHeader.Visible := True; end else begin AccordionItems[I].IsExpanded := False; end; end; end; Я в отчаянии, помогите чем можете, очень нужно. Спасибо!
×
×
  • Создать...