Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

FileListBox с двумя колонками

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

FileListBox с двумя колонками

Автор: Kurt

...как сказал Майкл, вы можете сделать количество колонок > 1. Но, как это имеет место в TDirectoryListBox, колонки перекрывают одна другую. Я действительно не рекомендую это из-за потенциально возможных конфликтов во время изменения шрифта, но вы могли бы сделать по-другому:


with TDirectoryListBox(FileListBox1) do
begin
  Columns := 2;
  SendMessage(Handle, LB_SETCOLUMNWIDTH,
  LoWord(GetTextExtent(Canvas.Handle, 'WWWWWWWW.WWW', 12)), 0);
end;

Here is the translation of the text into Russian:

Код пытается настроить контроль FileListBox для отображения с двумя столбцами. Автор Курт указывает, что хотя можно иметь более одного столбца в FileListBox, по умолчанию поведение TDirectoryListBox (используемое FileListBox) - это перекрытие столбцов.

Чтобы обойти эту проблему, код использует функцию Windows API SendMessage для ручного настройки ширины каждого столбца. Функция LB_SETCOLUMNWIDTH используется для указания ширины каждого столбца в пикселях. В этом случае она использует функцию GetTextExtent для расчета ширины строки ('WWWWWWWW.WWW') и затем передает это значение как ширину столбца.

Вот разбор, что код делает:

  1. with TDirectoryListBox(FileListBox1) do: эта строка начинается блок with-статements, который позволяет доступ к свойствам и методам контроля FileListBox как если бы он был объектом.
  2. Columns := 2;: это настройка количества столбцов для FileListBox в 2.
  3. SendMessage(Handle, LB_SETCOLUMNWIDTH, LoWord(GetTextExtent(Canvas.Handle, 'WWWWWWWW.WWW', 12)), 0): эта строка отправляет сообщение в контроль с помощью функции SendMessage. Параметры:
    • Handle: handle окна, владеющего контролем FileListBox.
    • LB_SETCOLUMNWIDTH: код Windows API для настройки ширины столбца.
    • LoWord(GetTextExtent(Canvas.Handle, 'WWWWWWWW.WWW', 12)): это расчет ширины строки ('WWWWWWWW.WWW') с помощью функции GetTextExtent и возвращение нижней части (т.е., целой части) результата.
    • 0: последний параметр обычно используется для передачи дополнительной информации, но в этом случае он просто установлен в 0.

Настраивая ширину столбца вручную таким образом, вы можете создать FileListBox с несколькими столбцами, которые не перекрываются. Однако, как указывает Курт, может возникнуть проблемы при изменении размера шрифта или других факторов, влияющих на отображение контроля.

В статье описывается способ настройки FileListBox с двумя колонками в Delphi, включая код на языке Pascal для изменения ширины колонок.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 15:59:05/0.0064330101013184/0