Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.08.2009, 16:53
DWARF DWARF вне форума
Прохожий
 
Регистрация: 28.08.2009
Сообщения: 3
Репутация: 10
По умолчанию Работа с ListBox

У меня такой вопрос: есть компонент TListBox. В него из переменной пишутся строки разной длины. Иногда эти строки могут вылезать за край компонента и стают не видны. Мне нужно сделать так, чтоб если строка не помещается целиком в компонент, то она переносится в другую строку, но при клике эти две строки работали как одна.
Например:
Есть строка: "Я хочу поехать на море". На экран влазит только "Я хочу поехать ", а "на море" переносится в следующую строку. НО: ListBox.Items должно иметь 1 строчку, а не 2, потому что в проге есть обработчик ListBoxClick и ДВЕ строчки "Я хочу поехать " и "на море" должны срабатывать одновременно, как если бы они были ОДНОЙ строкой.
Пробовал так:

Код:
procedure TForm1.ListBox1MeasureItem(Control: TWinControl;
  Index: Integer; var Height: Integer);
begin
  Height := 30;
end;


procedure TForm1.ListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  DrawText(ListBox1.Canvas.Handle, PChar(ListBox1.Items[Index]),
    Length(ListBox1.Items[Index]), Rect,  DT_WORDBREAK);
end;

но во все строки ListBox пишется последнее значение ListBox1.Items
Помогите кто-нибудь, а то я уже отчаялся найти решение...
Заранее благодарю.
Ответить с цитированием
  #2  
Старый 04.09.2009, 14:37
Аватар для apolsoft
apolsoft apolsoft вне форума
Прохожий
 
Регистрация: 04.09.2009
Сообщения: 3
Репутация: 10
По умолчанию

Ну заведи отдельный динамический массив, в котором укажи принадлежность перенесенных строк к списку из листбокса! И при клике на строке в листбоксе искать в этом массиве - если есть такой номер, то найти, какой пункт в листбоксе выбран.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter