Текущий архив: 2007.01.07;
Скачать: CL | DM;
Вниз
Как в KOL сменить цвет выделенного эл. LIstBox а? Найти похожие ветки
← →
phant (2006-03-22 03:07) [0]Необходимо сменить цвет выделенного эл. в LIstBox! Стандартный способ для VCL не работает! Или я, просто, чего-то не понимаю?
← →
Vladimir Kladov (2006-03-22 16:44) [1]И какой там стандатный метод?
← →
phant (2006-03-24 03:00) [2]Вот пример... Как грамотно его переделать для KOL ???
procedure TListTest.ListBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
const
HighLight = "LINE";
var
TempLine, TempText, TempHigh: string;
TempLeft, TempTop, TempStart: Integer;
OldColor: TColor;
begin
with (Control as TListBox).Canvas do
begin
FillRect(Rect);
TempLeft := Rect.Left + 3;
TempTop := Rect.Top + 1;
TempLine := (Control as TListBox).Items[Index];
while TempLine > "" do
begin
TempStart := Pos(HighLight, AnsiUpperCase(TempLine));
if TempStart > 0 then
begin
TempText := Copy(TempLine, 1, TempStart - 1);
TempHigh := Copy(TempLine, TempStart, Length(HighLight));
Delete(TempLine, 1, TempStart + Length(HighLight) - 1);
end
else
begin
TempText := TempLine;
TempHigh := "";
TempLine := "";
end;
if TempText > "" then
begin
TextOut(TempLeft, TempTop, TempText);
Inc(TempLeft, TextWidth(TempText));
end;
if TempHigh > "" then
begin
OldColor := Font.Color;
if odSelected in State then
Font.Color := clYellow
else
Font.Color := clBlue;
TextOut(TempLeft, TempTop, TempHigh);
Inc(TempLeft, TextWidth(TempHigh));
Font.Color := OldColor;
end;
end;
end;
end;
← →
Vladimir Kladov (2006-03-24 18:31) [3]А, тоде OnDrawItem. А я-то думал... Определить опцию OwnerDraw, назначить обработчик, рисовать все элементы самому - что же туту сложного.
← →
phant (2006-03-25 04:15) [4]А примерчик можно??? Заранее спасибо!!!
Страницы: 1 вся ветка
Текущий архив: 2007.01.07;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.05 c