Главная страница
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.49 MB
Время: 0.049 c
14-1098646019
Piter
2004-10-24 23:26
2004.11.14
Ура! У нас тоже появляется доступный выделенный интернет


9-1090532158
Sergeef
2004-07-23 01:35
2004.11.14
Доки по созданию игр на С++


3-1097511063
Vsevolod
2004-10-11 20:11
2004.11.14
Использование фильтра


14-1098772647
ИМХО
2004-10-26 10:37
2004.11.14
What is MSN? (Мазуту, Алексу и всем-всем-всем)


1-1098887305
progress
2004-10-27 18:28
2004.11.14
Panel1.Handle - обработка изображения