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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
4-1097041381
Суслик
2004-10-06 09:43
2004.11.14
Шрифт


14-1098964710
Denis
2004-10-28 15:58
2004.11.14
Компютер не грузится с загрузочной дискеты


1-1099426141
SteelMan
2004-11-02 23:09
2004.11.14
что за файл qtintf.dll


14-1098755050
Думкин
2004-10-26 05:44
2004.11.14
С днем рождения! 26 октября.


14-1098727730
Auron
2004-10-25 22:08
2004.11.14
написание Firewall a