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

Как добавлять колонки в обычный Listbox (TListbox)?

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

Как добавлять колонки в обычный Listbox (TListbox)?

Класс TListbox содержит свойство TabWith:

Code:
ListBox1.TabWith := 50;
ListBox1.Items.Add('Column1'^I'Column2');  // ^I это символ Tab
Взято из http://forum.sources.ru

Here's the translation of the content into Russian:

Вопрос Дельфи! Вы пытаетесь добавить столбцы в стандартный TListbox (не в TListView, который имеет встроенную поддержку столбцов). Свойство, которое вы отсылаете, - это TabWidth, а не TabWith.

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

ListBox1.TabWidth := 50;
ListBox1.Items.Add('Column1' + #9 + 'Column2');

КарACTER #9 - это символ табуляции (ASCII-код 9), который будет вставлен между двумя столбцами.

Однако, пожалуйста, обратите внимание на ограничения этого подхода. Контрол TListbox предназначен для отображения списка односимвольных элементов и не поддерживает многостолбцовое расположение или сложное форматирование. Если вам нужно болееadvanced контроль над столбцами, я бы рекомендовал использовать TListView вместо этого.

Если вы все еще хотите оставаться с TListbox, вы также можете рассмотреть использование подхода custom drawing, где вы вручную рисуете столбцы и элементы в обработчике события OnDrawItem. Это потребует больше кодирования усилий, но дает вам полный контроль над расположением и внешним видом вашего списка.

Вот пример реализации этого:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with ListBox1.Canvas do begin
    Brush.Color := clWhite;
    FillRect(Rect);

    // Рисуем заголовки столбцов
    TextOut(5, 0, 'Column1');
    TextOut(Rect.Width - TextWidth('Column2') - 5, 0, 'Column2');

    // Рисуем текст элементов
    TextOut(5, Rect.Height - Font.Height, ListBox1.Items.Strings[Index]);
  end;
end;

procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
  var ItemWidth: Integer);
begin
  ItemWidth := 200; //ปรискауйте ширину столбца в соответствии с вашими требованиями
end;

В этом примере мы переопределяем событие OnDrawItem, чтобы вручную рисовать каждый элемент и соответствующие ему столбцы. Мы также реализуем событие OnMeasureItem, чтобы установить ширину каждого элемента (т. е., столбца).

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

Надеюсь, это поможет! Пожалуйста, если у вас есть какие-либо дальнейшие вопросы.

Добавление колонок в обычный Listbox (TListbox) можно выполнить с помощью свойства TabWidth, которое позволяет задать ширину табуляции, а затем добавить строки с символом табуляции (^I), чтобы разделить текст на столбцы.


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

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




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


:: Главная :: Списки ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-08 17:30:28/0.003770112991333/0