Показать сообщение отдельно
  #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
Помогите кто-нибудь, а то я уже отчаялся найти решение...
Заранее благодарю.
Ответить с цитированием