IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Отображение CheckListBox
Vinchkovsky
сообщение 25.05.2007 9:17
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 98
Пол: Мужской
Реальное имя: Andriy

Репутация: -  0  +


Возникло две проблемы с этим компонентом:
1) Как сделать, чтобы автоматично переводилась строка, если "нет места"? То есть, если строка длиннее компонента, та часть, что не влезает, должна "уйти" вниз.
2) Что надо поставить, чтобы "от руки" изменять размер компонента? ТИпа СкроллБокса, но для изменения размера.
Спасибо wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.05.2007 9:37
Сообщение #2


Гость






1. Код можно и усовершенствовать, но идея такая:

Сначала
Style := lbOwnerDrawFixed;

Потом увеличиваешь ItemHeight для CheckListBox-а в 2 раза, и на событие OnDrawItem вешаешь код:

procedure TForm1.CheckListBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var

Sentence,
CurWord: string;
SpacePos,
CurX, CurY: Integer;
EndOfSentence: Boolean;

begin

with (Control as TCheckListBox) do begin
Canvas.Font.Size:=8;
Canvas.FillRect(Rect);

CurX := Rect.Left;
CurY := Rect.Top;

Sentence := Items[Index];
EndOfSentence := FALSE;

while (not EndOfSentence) do begin

SpacePos := Pos(' ', Sentence);
if SpacePos > 0 then begin
CurWord := Copy(Sentence, 0, SpacePos);
Sentence := Copy(Sentence, SpacePos + 1, Length(Sentence) - SpacePos);
end
else begin
EndOfSentence := TRUE;
CurWord := Sentence;
end;

with Canvas do begin
if (TextWidth(CurWord) + CurX) > Rect.Right then begin
CurY := CurY + TextHeight(CurWord);
CurX := Rect.Left;
end;

TextOut(CurX, CurY, CurWord);
CurX := CurX + TextWidth(CurWord);
end;
end;

end;
end;

(С) ViktorXP

Вот так оно выглядит:


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 10:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"