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

TListView  DynamicAppearance ItemAppearanceObjects.ItemObjects.ObjectsCollection


Владимир1

Вопрос

Здравствуйте!

Установил в ListView свойство ItemAppearance в DynamicAppearance.

Создал в Desingtime в несколько текстовых элементов в DynamicAppearance.

Как в Run Time получить доступ к AppearanceObjectName = 'Detail' и изменить его ширину.

Сделать это надо на старте, когда ещё не создано ни одного TListViewItem.

Для того, что бы все вновь создаваемые TListViewItem. имели 'Detail' с заданной шириной

object ListView1: TListView

..............................................................................
        ItemAppearanceObjects.ItemObjects.ObjectsCollection = <
          item
            AppearanceObjectName = 'Detail'
            AppearanceClassName = 'TTextObjectAppearance'
            Appearance.Font.Size = 11.000000000000000000
            Appearance.TextAlign = Leading
            Appearance.WordWrap = True
            Appearance.TextColor = claCrimson
            Appearance.Width = 571.000000000000000000
            Appearance.Height = 25.000000000000000000
            Appearance.PlaceOffset.X = 52.000000000000000000
            Appearance.PlaceOffset.Y = 20.000000000000000000
          end

...............................................................................................................................

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
В 06.08.2020 в 22:19, OnePeople сказал:

procedure TForm1.ListViewUpdateObjects(const Sender: TObject;
  const AItem: TListViewItem);
begin
    TListItemText(AItem.Objects.FindDrawable('Detail')).Width:=Ваша ширина;

end;

Спасибо за быстрый ответ. В Вашем примере меняется ширина уже созданного экземпляра TListViewItem. Мне нужно определить ширину ещё до создания TListViewItem. Как вариант использовал код вида:

Function FindLVItemObjectByName(aName: String): TCommonObjectAppearance;
Var
  i: Integer;
begin
  Result := Nil;
  With Form1.ListView1, ItemAppearanceObjects.ItemObjects do
    for i := 0 to 3 do
      if Objects.Name = aName then
      begin
        Result := TCommonObjectAppearance(Objects);
        Break;
      end;
end;


Это частный случай, здесь идёт перебор коллекции обьектов  ItemAppearanceObjects.ItemObjects.ObjectsCollection. Не очень красиво, но работает!

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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