procedure TForm1.Button1Click(Sender: TObject);
const// The maximum number of Tabs // Die Anzahl der maximal aufretenen Tabs eintragen
MAX_TABS = 4;
Tab = #9;
var
Tabulators: array[0..MAX_TABS] of Integer;
begin{ Set the Tabulator Widths / Tabulatorweiten festlegen}
Tabulators[0] := 70;
Tabulators[1] := 120;
Tabulators[2] := 100;
Tabulators[3] := 80;
Listbox1.TabWidth := 1;
{ Set the Tabulators / Tabulatoren setzen }
SendMessage(ListBox1.Handle, LB_SETTABSTOPS, MAX_TABS, Longint(@Tabulators));
{ Add some Items / Items hinzufugen.}
Listbox1.Items.Add('Peter' + Tab + 'Meier' + Tab + '1234-56' + Tab + 'Otzlingen');
Listbox1.Items.Add('Johann Jones' + Tab + 'Krauter' + Tab + '123-45');
end;
Программный код на Delphi, который настраивает компонент TListBox с колонками различных ширины с помощью сообщения LB_SETTABSTOPS. Вот разбивка кода:
Первая секция определяет константы и переменные:
MAX_TABS: максимальное количество табов (4 в этом случае).
Tab: символ таба (#9).
Tabulators: массив целых чисел, который будет хранить ширины каждой колонки.
Процедура вызывается событием клика кнопки и выполняет следующие действия:
Устанавливает ширину каждой колонки с помощью массива Tabulators. В этом случае ширины равны 70, 120, 100 и 80 пикселей.
Отправляет сообщение LB_SETTABSTOPS компоненту TListBox с максимальным количеством табов (MAX_TABS) и указателем на массив Tabulators.
Добавляет два элемента в список. Каждый элемент состоит из нескольких текстовых полей, разделенных символами таба (Tab). Ширины этих текстовых полей определяются соответствующими значениями в массиве Tabulators.
Альтернативное решение:
Вместо использования сообщения LB_SETTABSTOPS можно использовать метод TListBox.Columns.Add, чтобы добавить колонки с конкретными ширинами. Например:
Эта APPROACH более проста и легче поддерживать, потому что вам не нужно заботиться о сообщении LB_SETTABSTOPS или массиве Tabulators. Однако, если вам нужно больше контроля над табами или динамически изменять ширины колонок, использование LB_SETTABSTOPS может быть более подходящим вариантом.
В статье описывается способ настройки колонок в TListBox с помощью табулятора, позволяя управлять шириной каждого столбца.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS