Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизУбрать прямоугольную рамку фокуса в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c