Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо