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

Колонки разной ширины в TListBox при помощи табулятора

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

Колонки разной ширины в TListBox при помощи табулятора

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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. Вот разбивка кода:

  1. Первая секция определяет константы и переменные:
    • MAX_TABS: максимальное количество табов (4 в этом случае).
    • Tab: символ таба (#9).
    • Tabulators: массив целых чисел, который будет хранить ширины каждой колонки.
  2. Процедура вызывается событием клика кнопки и выполняет следующие действия:
    • Устанавливает ширину каждой колонки с помощью массива Tabulators. В этом случае ширины равны 70, 120, 100 и 80 пикселей.
    • Отправляет сообщение LB_SETTABSTOPS компоненту TListBox с максимальным количеством табов (MAX_TABS) и указателем на массив Tabulators.
    • Добавляет два элемента в список. Каждый элемент состоит из нескольких текстовых полей, разделенных символами таба (Tab). Ширины этих текстовых полей определяются соответствующими значениями в массиве Tabulators.

Альтернативное решение: Вместо использования сообщения LB_SETTABSTOPS можно использовать метод TListBox.Columns.Add, чтобы добавить колонки с конкретными ширинами. Например:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Listbox1.Columns.Add('Peter', 70);
  Listbox1.Columns.Add('Meier', 120);
  Listbox1.Columns.Add('1234-56', 100);
  Listbox1.Columns.Add('Otzlingen', 80);

  Listbox1.Items.Add('Johann Jones' + #9 + 'Krauter' + #9 + '123-45');
end;

Эта APPROACH более проста и легче поддерживать, потому что вам не нужно заботиться о сообщении LB_SETTABSTOPS или массиве Tabulators. Однако, если вам нужно больше контроля над табами или динамически изменять ширины колонок, использование LB_SETTABSTOPS может быть более подходящим вариантом.

В статье описывается способ настройки колонок в TListBox с помощью табулятора, позволяя управлять шириной каждого столбца.


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

Получайте свежие новости и обновления по 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 18:31:44/0.0037980079650879/0