Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

### Решение проблемы выравнивания текста в ListViewItem в Firemonkey для Delphi 10.4: универсальный подход

Delphi , Компоненты и Классы , TListView

В статье мы рассмотрим проблему выравнивания текста в элементах списка ListView в компоненте Firemonkey для среды разработки Delphi 10.4. Пользователь столкнулся с тем, что при изменении размера компонента ListView, текст в элементах списка выравнивается по левому краю, несмотря на попытки установить выравнивание текста в процедуре создания элементов списка.

Проблема

Пользователь хочет создать ListView в Firemonkey, где текст элементов списка выравнивается по левому или правому краю в зависимости от содержимого элемента. Однако, после изменения размера компонента ListView, все элементы списка выравниваются по левому краю.

Решение

Официальным ответом на проблему является необходимость изменить настройку ItemAppearance с ListItem на DynamicAppearance. Это позволяет вручную создать два объекта TextObjectAppearance в структуре компонента под ListView.ItemAppearance.Item, где один объект будет иметь выравнивание текста по левому краю (TextAlign=Leading), а другой — по правому (TextAlign=Trailing). Затем, при добавлении элемента в список, необходимо указать, какой объект выравнивания использовать, передав текст в соответствующий объект данных (Data['Text1'] или Data['Text2']).

Пример кода

procedure TForm1.FormCreate(Sender: TObject);
var
  Item: TListViewItem;
  c: Integer;
begin
  procedure AddItem(No: Integer);
  begin
    Item := ListView1.Items.AddItem(No);
    if No mod 2 = 0 then
      Item.Data['Text1'] := 'Text item No ' + No.ToString
    else
      Item.Data['Text2'] := 'Text item No ' + No.ToString;
  end;

  for c := 0 to 9 do
    AddItem(c);
end;

Описание файла проекта FMX

object Form1: TForm1
  // ... остальные свойства формы ...
  object ListView1: TListView
    ItemAppearanceClassName = 'TDynamicAppearance'
    ItemEditAppearanceClassName = 'TDynamicAppearance'
    // ... другие свойства ListView ...
    ItemAppearanceObjects.ItemObjects.ObjectsCollection = <
      item
        AppearanceObjectName = 'Text1'
        AppearanceClassName = 'TTextObjectAppearance'
        Appearance.TextAlign = Leading
      end
      item
        AppearanceObjectName = 'Text2'
        AppearanceClassName = 'TTextObjectAppearance'
        Appearance.TextAlign = Trailing
      end>;
    // ... другие свойства ...
  end;
  // ... остальные объекты формы ...
end;

Заключение

Используя предложенный подход, разработчики могут создать ListView с различным выравниванием текста для элементов, которое будет корректно отображаться на всех платформах, поддерживаемых Firemonkey, и не потеряет свою настройку при изменении размера компонента.

Создано по материалам из источника по ссылке.

Пользователь столкнулся с проблемой выравнивания текста в элементах списка `ListView` в компоненте Firemonkey для Delphi 10.4, когда после изменения размера компонента текст выравнивается по левому краю, несмотря на настройки.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TListView ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 15:08:48/0.0034661293029785/0