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

Как изменить размер шрифта у TListItemText в TListItem?


estra

Вопрос

Добавил TListItemText в TListItem. Как теперь изменить размер шрифта?

procedure TForm1.ListView1UpdateObjects(const Sender: TObject;
  const AItem: TListViewItem);
var
  LCaption: TListItemText;
begin
  LCaption := AItem.Objects.FindObject('CA') as TListItemText;
  if LCaption = nil then
  begin
    ...
    LCaption.Font.Size := 56; // не работает
    ...
  end;
end;
Изменено пользователем Brovin Yaroslav
Ссылка на комментарий

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

  • 0
  • Администраторы

Не знаю, как вы создаете итемы (в следующий раз нужно прикреплять тестовый проект, согласно правилам форума). Но у меня работает:

 

Создаю итемы для TListView с дополнительным текстовым полем так:

procedure TForm1.Button1Click(Sender: TObject);
var
  Item: TListViewItem;
  TextObject: TListItemText;
  I: Integer;
begin
  for I := 0 to 10 do
  begin
    Item := ListView1.Items.Add;
    Item.Text := 'Item ' + I.ToString;
    TextObject := TListItemText.Create(Item);
    TextObject.Name := 'SubCaption';
    TextObject.PlaceOffset.Point := TPointF.Create(100, 0);
    TextObject.Font.Size := Random(20) + 5;
    TextObject.Height := Item.Height;
    TextObject.Text := 'Sub caption';
  end;
end;

Обновляю размеры под текста и цвет так:

procedure TForm1.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem);
var
  TextObject: TListItemText;
begin
  TextObject := AItem.Objects.FindObject('SubCaption') as TListItemText;
  if TextObject <> nil then
  begin
    TextObject.Font.Size := 20;
    TextObject.TextColor := TAlphaColorRec.Red;
  end;
end;

Результат ниже: Без обновления размера и с кодом коррекции размера и цвета:
post-1-0-12659900-1400771179_thumb.pngpost-1-0-61165100-1400771178_thumb.png

 

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

Ярослав, я нашел причину проблемы. Если в ваш код добавить 1 строку (TextObject.IsDetailText := True;), ваш код перестанет работать корректно (размер шрифта не будет меняться).

procedure TForm1.Button1Click(Sender: TObject);
var
  Item: TListViewItem;
  TextObject: TListItemText;
  I: Integer;
begin
  for I := 0 to 10 do
  begin
    Item := ListView1.Items.Add;
    Item.Text := 'Item ' + I.ToString;
    TextObject := TListItemText.Create(Item);
    TextObject.Name := 'SubCaption';
    TextObject.PlaceOffset.Point := TPointF.Create(100, 0);
    TextObject.Font.Size := Random(20) + 5;
    TextObject.Height := Item.Height;
    TextObject.Text := 'Sub caption';
    TextObject.IsDetailText := True; // Эта строка все портит !!!
  end;
end;

Какую роль играет свойство IsDetailText, для чего оно, где и как его можно использовать?

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

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

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

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

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

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

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

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

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

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

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