![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли компонент...
Tempora © (2006-05-21 17:02:00)Есть ли компонент типа LixtBox только с возможностью использования разного цвета текста для строк?
Плохиш (2006-05-22 11:59:00) [1]
> Галинка © (22.05.06 00:22) [6]
> А можно ли менять цвет фона строки?
В строкеCanvas.Font.Color:=clHighlightText;надо убрать слово.Font.
Галинка (2006-05-22 00:22:00) [2]А можно ли менять цвет фона строки?
Tempora (2006-05-21 21:36:00) [3]Спасибо, понял в чем ошибка
Я думал этот код будет обробатываться сразу для всего содержимого листбокса, а он вызывается для обработки каждой строки.
Tempora (2006-05-21 19:12:00) [4]А как сделать иначе?
Все-равно он никак не хочет отдельную строку выделять цветом.
begin...end (2006-05-21 17:30:00) [5]> Tempora (21.05.06 17:21) [2]
Что же здесь удивительного? При каждом вызове OnDrawItem Вы проверяете один и тот же элемент -- последний (с индексом log1.Items.Count-1). Поэтому все строки рисуются одним и тем же цветом...
Tempora (2006-05-21 17:21:00) [6]Я пробовал. Я использую код:
procedure TfWorking.log1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
I: integer;
begin
I:= log1.Items.Count-1;
With log1 do
begin
if Items[I] = 'Соединение с FTP установлено' then
Canvas.Font.Color:=clGreen;
if Items[I] = 'Не удалось соединиться с FTP' then
Canvas.Font.Color:=clRed;
If odSelected in State then
Canvas.Font.Color:=clHighlightText;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2,Rect.Top,Items[Index]);
end;
end;
Но при этом все содержимое ListBox становится красным (там много строк).
begin...end (2006-05-21 17:17:00) [7]Это и есть ListBox. См. в справке: TListBox.OnDrawItem.