Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.27;
Скачать: CL | DM;

Вниз

Убрать прямоугольную рамку фокуса в ListBox.   Найти похожие ветки 

 
AlexanderMS ©   (2006-08-05 16:09) [0]

Скажите, пожалуйста, как можно избавится от пунктирной рамочки, которая появляется вокруг выделенного элемента в ListBox? Я думаю, вполне достаточно синего фона выделения, а при MultiSelect этот прямоугольник даже портит вид.


 
Loginov Dmitry ©   (2006-08-05 17:40) [1]

В OnDrawItem можешь рисовать собственное выделение


 
Новенькиййййййййй   (2006-08-06 01:12) [2]

В OnDrawItem я как раз и написал (я не автор топика:-))) недавно, но все, кроме пунктира получается хорошо, точнее я никак не могу убрать именно пунктир. Может примерчик какой нибудь подкинете?


 
Loginov Dmitry ©   (2006-08-06 10:47) [3]

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

begin
 with ListBox1.Canvas do
 begin
   // Стираем изорбажение
   Brush.Color := clWhite;
   Pen.Color := clWhite;
   if odSelected in State then
   begin
     if odFocused in State then
       Brush.Color := clMoneyGreen;
     Pen.Color := clBlack;
     Pen.Style := psDot;
   end;
   Rectangle(Rect); // Рисуем рамочку

   // Выводим текст
   Pen.Style := psSolid;
   Pen.Color := clBlack;
   Brush.Style := bsClear;
   Font.Color := clBlack;
   if Index = ListBox1.ItemIndex then
     Fonr.Style := [fsBold];

   TextOut(Rect.Left + 2, Rect.Top + 1, ListBox1.Items[Index]);
   end;
end;


Программировал в клиенте, убирайте баги сами ;)


 
AlexanderMS ©   (2006-08-06 17:16) [4]

Не знаю, где-то же должна убираться. Смотрел исходники VCL, но не нашёл. Было там, по-моему, DrawFocusRect, но не помогает.
--
Всем спасибо. Попробую.


 
KilkennyCat ©   (2006-08-06 17:36) [5]

Если внимательно смотреть исходники, то заметно, что то, что не помогает, работает только при определенном стиле листбокса.



Страницы: 1 вся ветка

Текущий архив: 2006.08.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1154951397
ProgramMaker_
2006-08-07 15:49
2006.08.27
Почему не работает следующее...


4-1146637983
razor
2006-05-03 10:33
2006.08.27
Как получить данные с мат. платы (данные с термодатчиков и т.д.)


4-1146750887
__ViC
2006-05-04 17:54
2006.08.27
Перечват CreateFile


15-1153955958
Dust
2006-07-27 03:19
2006.08.27
Редактор исходного кода с аутлайнингом


15-1153978624
palva
2006-07-27 09:37
2006.08.27
Статья Н. Елмановой в Компьютер-пресс