Как показать GlyphButton в FMX ListView

#listview #delphi #firemonkey

#listview #delphi #firemonkey

Вопрос:

В Delphi 10.4.2. Это очень простой вопрос. Новый проект с несколькими устройствами, добавьте Listview в форму. Переключитесь в режим разработки, используйте DynamicAppearance. Добавьте 2 текстовых элемента и 1 glyphButton (флажок), подключите источник данных.

Во время разработки флажок не отображается, хотя значение Glyphbotton.visible равно true. Во время выполнения закодировал ListView1ItemClick даже с помощью однострочного кода

AItem.Objects.GlyphButton.Visible:=true;

При нажатии на элемент он выдает ошибку, как показано на фотографии. введите описание изображения здесь

Есть идеи, как показать флажок, когда пользователь нажимает на элемент. Это должна быть очень простая функция, почему даже Google не может ответить на это?

Пример кода находится на github https://github.com/tanghzuk/ListView-Test

Ответ №1:

После включения режима toogleedit измените внешний вид элемента ListViewItem на пользовательский.

Вы можете показывать и скрывать флажок :

 procedure TForm1.ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem);
begin
  AItem.Objects.GlyphButton.Visible:= not AItem.Objects.GlyphButton.Visible;
end;
 

Вся информация находится в docwiki : http://docwiki.embarcadero.com/RADStudio/Sydney/en/Customizing_FireMonkey_ListView_Appearance#Customizable_Item_Appearances

Комментарии:

1. спасибо за ваш ответ, я попробовал ваш способ, он не работает. Пожалуйста, не могли бы вы проверить код на githut github.com/tanghzuk/ListView-Test.git чтобы увидеть, где что-то пошло не так. В принципе, я хочу добиться эффекта в примере ListViewCheckList, но с динамическим появлением, поскольку мне нужно несколько ItemText в одном элементе.

2. Режим toogleedit не активен, щелкните правой кнопкой мыши на вашем ListView и активируйте его

3. Да, это работает, но флажок является ведущим. Попытался изменить его на tailing, он не работает. Если вы можете переключать режим проектирования без режима редактирования, вы можете увидеть положение glyphbutton. Время выполнения отличается от времени разработки? Есть идеи? Спасибо

4. Это не тот вопрос, который вы задаете, отредактируйте его и будьте более понятны

5. Я обновил код, который похож на мой проект. Он имеет 4 ItemText, 1 glyphbutton в динамическом появлении. Как заставить эту glyphbutton работать, когда пользователь нажимает на элемент? Ваше решение ToggleEditMode работает только для 1 ItemText и 1 glyphbutton. Я не могу настроить под свои нужды. Спасибо.