![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListBox
Тов. Стёпка Жукин © (2005-01-05 13:53:00)Как выделить некоторые строки в TListBox жирным шрифтом ?
Тов. Стёпка Жукин (2005-01-13 13:28:00) [1]Здравствуйте, уважаемые!
1)Как сделать так , чтобы полоса выделения при зажатой Левой кнопке мыши
не следовала бы за курсором при его перемещении над ListBox , а осталась бы на той строке , где был произведён click (как при DblClick);
2)Как можно безмятежно нарисовать линию на Канве ListBox-а?
В DrawItem - не показывается текст строк ListBox-а...
В OnPaint формы - тухлый номер , сами понимаете (для одной линии ещё сойдёт , а вот для нескольких - ни-ни)
begin...end (2005-01-06 09:06:00) [2]> [8] aus (06.01.05 09:03)
Дело вкуса. Просто мне так лучше видно, какому значению индекса какой элемент массива соответствует.
aus (2005-01-06 09:03:00) [3]begin...end © (06.01.05 8:51) [7]
Background: array [False..True] of TColor = (clLime, clRed);
А почему бы не так
Background: array [ boolean] of TColor = (clLime, clRed);
Это принципиально, или дело вкуса?
begin...end (2005-01-06 08:51:00) [4]> [6] кен © (06.01.05 06:24)
procedure TMyForm.MyListBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
const
Background: array [False..True] of TColor = (clLime, clRed);
begin
with (Control as TListBox), Canvas do
begin
Brush.Color := Background[odSelected in State];
FillRect(Rect);
TextOut(0, Rect.Top, Items[Index])
end
end.
P.S. Не проверял.
кен (2005-01-06 06:24:00) [5]О,спасибо!А как изменить цвет полоски выделения?
ssk (2005-01-05 14:34:00) [6]>Тов. Стёпка Жукин
а тебе не все равно, кто тут админ?
Меняем шрифт у какого-нибудь пункта ListBox
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
s: string;
begin
with ListBox1 do
begin
s := Items[Index];
Canvas.FillRect(Rect);
case Index of
0: begin
Canvas.Font.Name := 'Tahoma';
Canvas.Font.Style := Canvas.Font.Style + [fsBold];
end;
1: begin
Canvas.Font.Name := 'Tahoma';
Canvas.Font.Style := Canvas.Font.Style + [fsItalic, fsBold];
end;
end;
Canvas.TextOut(0, Rect.Top, s);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Style := lbOwnerDrawFixed;
ListBox1.Clear;
ListBox1.Items.Add('Первая строка');
ListBox1.Items.Add('Вторая строка');
end;
begin...end (2005-01-05 14:13:00) [7]> [3] Тов. Стёпка Жукин (05.01.05 14:10)
> Слушай ты админ?
Боже упаси.
Тов. Стёпка Жукин (2005-01-05 14:10:00) [8]Слушай ты админ? Ты тут круглые сутки сидишь.
Тов. Стёпка Жукин (2005-01-05 14:09:00) [9]Родина тебя НЕ ЗАБУДЕТ!!
begin...end (2005-01-05 13:55:00) [10]> Тов. Стёпка Жукин (05.01.05 13:53)
Рисовать самостоятельно в обработчике TListBox.OnDrawItem.