Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизTListBox Найти похожие ветки
← →
Alibaba © (2004-10-25 12:47) [0]Уважаемые господа,
Такая ситуация:
Есть lbListSQL: TListBox, в нем три елемента.
Если Style поставить lbStandard,
то, если выбрать второй елемент lbListSQL
а потом lbListSQL потеряет фокус, второй елемент останется выбранным.
Если Style поставить lbOwnerDrawFixed,
то, если выбрать второй елемент lbListSQL
а потом lbListSQL потеряет фокус -
не будет выбранных елементов.
------------------------------------------------
Некоторые елементы lbListSQL я закрашиваю в определенный цвет.
Для закраски необходимо Style:=lbOwnerDrawFixed.
Но при этом, когда lbListSQL теряет фокус я не вижу какой елемент был выбран.
------------------------------------------------
Вопрос:
Как сделать что-бы можно было некоторые елементы lbListSQL закрашивать в определенный цвет и при этом, когда lbListSQL теряет фокус я хочу видеть какой елемент был выбран?
← →
Rem © (2004-10-25 13:27) [1]Приведите код прорисовки.
← →
Alibaba © (2004-10-25 14:00) [2]//Рисуем список SQL-запросов.
//Те, которые выгружают в Excel - зеленым цветом
procedure TfrmMain.lbListSQLDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var s: string;
begin
with TListBox(Control).Canvas do
begin
s:=TListBox(Control).Items[Index];
if stExcel.IndexOf(s) > -1 then Brush.Color:=clMoneyGreen
else Brush.Color:=clWhite;
Font.Color:=clBlack;
FillRect(Rect);
TextOut(Rect.Left + 2, Rect.Top, (Control as TListBox).Items[Index]);
end;
end;
← →
Мирон © (2004-10-25 14:20) [3]Alibaba © (25.10.04 14:00) [2]
а если добавить в конце:if (FocusControl <> Control) and (TListBox(Control).ItemIndex = Index)
then TListBox(Control).Canvas.DrawFocusRect(Rect)
← →
Мирон © (2004-10-25 14:23) [4]Alibaba © (25.10.04 14:00) [2]
дико извиняюсьif (ActiveControl <> Control) and (TListBox(Control).ItemIndex = Index)
then TListBox(Control).Canvas.DrawFocusRect(Rect)
← →
Alibaba © (2004-10-25 14:34) [5]Мирон © (25.10.04 14:23) [4]
Стало работать, но не всегда.
Когда фокус получает TMemo - не работает.
← →
Alibaba © (2004-10-26 11:37) [6]Народ, подсобите, плиз.
Очень важный момент.
lbListSQL: TListBox содержит список SQL-запросов,
memSQL: TMemo содержит текст запросов.
Кликаю на елемент lbListSQL - в memSQL появляется запрос.
Я иду в memSQL если необходимо редактировать.
При этом в списке запросов (lbListSQL)
видно какой запрос сейчас обрабатывается.
Некоторые запросы особенные.
Я хочу их выделить в списке.
Если выделять строку с определенным запросом
в lbListSQL необходимо Style:=lbOwnerDrawFixed
при этом, когда lbListSQL теряет фокус
(я иду в memSQL редактировать)
НЕ ВИДНО какой запрос сейчас обрабатывается.
Как решить проблему?.
Подскажите, очень надо.
← →
Мирон © (2004-10-28 00:56) [7]Alibaba © (26.10.04 11:37) [6]
Ну или рисовать фон активного айтем"а третьим цветом, если рамочкой не получается. Типа:
if lbListSQL.ItemIndex = Index
then lbListSQL.Canvas.Color := clHighLight
else ...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c