Владимир1 Опубликовано 6 августа, 2020 Поделиться Опубликовано 6 августа, 2020 Здравствуйте! Установил в 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 OnePeople Опубликовано 6 августа, 2020 Поделиться Опубликовано 6 августа, 2020 procedure TForm1.ListViewUpdateObjects(const Sender: TObject; const AItem: TListViewItem); begin TListItemText(AItem.Objects.FindDrawable('Detail')).Width:=Ваша ширина; end; Ingalime и Евгений Корепов 2 Цитата Ссылка на комментарий
0 Владимир1 Опубликовано 10 августа, 2020 Автор Поделиться Опубликовано 10 августа, 2020 В 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. Не очень красиво, но работает! Цитата Ссылка на комментарий
Вопрос
Владимир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
...............................................................................................................................
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.