Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 22:46   #1
Kity19
 
Регистрация: 19.01.2011
Сообщений: 8
По умолчанию Выделение цветом нужной строки в ListBox

Всем доброй ночи! Проблема в следующем: в ListBox-е отображаются все файлы, отправленные на сервер по почте. При получении ответа от сервера, нужно в ListBox-е найти нужное имя файла и выделить его жирным красным цветом. Вся проблема именно с этим выделением Можно ли выделить нужную строку в ListBox-е, не фокусируясь на ней ? через OnDrawItem все нормально, а как сделать без фокуса не доходит. Помогите, пожалуйста. Заранее спасибо.
Kity19 вне форума Ответить с цитированием
Старый 31.01.2011, 23:05   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Создание цветных строк в ListBox. Например, "нужной" строкой является 4-ая (по индексу - 3-я) :
Код:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
//далее можно задать наше условие для цвета отдельных строк
if Index=3 then
begin
Font.Color := clRed; //здесь любой ваш цвет. Можно и другие параметры шрифта задать, например, Bold...
Font.Style:=Font.Style+[fsBold];
Brush.Color:=clYellow;
end;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
end;
end;

Последний раз редактировалось asmodey1; 31.01.2011 в 23:17.
asmodey1 вне форума Ответить с цитированием
Старый 31.01.2011, 23:19   #3
Kity19
 
Регистрация: 19.01.2011
Сообщений: 8
По умолчанию

Спасибо, asmodey1, но то что вы предложили не работает, т.е. это не совсем то, что нужно. Понимаете...

каждые 3 сек проверяется определенная папка и в ListBox-е отображаются имена файлов, отправленных на сервер. Другой таймер каждые 5 сек проверяет почтовый ящик, и при наличии письма складывает приаттаченные файлы в другую папку. И вот при совпадении имен мне нужно в ListBox-е выделять нужные файлы цветом, независимо от ListBox1DrawItem

т.е. в вашем случае пока я не выберу в ListBox-е элемент, он не выделится цветом, а мне нужно, чтобы выделение было автоматическое. Т.е. программка работает как бы сама по себе через таймеры, а пользователь заглядывает время от времени и видит - если выделено жирным красным (к примеру), значит ответ пришел с сервера.

Последний раз редактировалось Kity19; 31.01.2011 в 23:24.
Kity19 вне форума Ответить с цитированием
Старый 31.01.2011, 23:52   #4
Kity19
 
Регистрация: 19.01.2011
Сообщений: 8
По умолчанию

Ребят, может я не совсем понятно задачу изложила... попробую по-другому...

на форме три компонента - ListBox1, Edit1, Button1. В ListBox-е цифры от 1 до 30. В Edit1 вводим число 12. Нажимаем на кнопку Button1 и нужно, чтобы в ListBox-е число 12 выделилось цветом. Как это сделать не пойму что писать в procedure TForm1.Button1Click(Sender: TObject);
Kity19 вне форума Ответить с цитированием
Старый 01.02.2011, 02:29   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Kity19 Посмотреть сообщение
т.е. в вашем случае пока я не выберу в ListBox-е элемент, он не выделится цветом, а мне нужно, чтобы выделение было автоматическое.
Я не знаю, что вы там делаете, но эта процедура работает именно автоматически и ничего выделять не надо...
Ваше дело - назначить условия, при которых будет происходить раскраска.
Эта процедура (обработчик события отрисовки) специально предназначен для нестандартного отображения.
Если бы вы заглянули в хэлп насчет этого события, то увидели бы, что для его использования нужно установить нестандартный ListBox.Style в инспекторе объектов... Например, lbOwnerDrawFixed
asmodey1 вне форума Ответить с цитированием
Старый 01.02.2011, 09:12   #6
Kity19
 
Регистрация: 19.01.2011
Сообщений: 8
По умолчанию

спасибо! Все получилось ! Вся проблема была в неправильном условии.

Последний раз редактировалось Kity19; 01.02.2011 в 09:34.
Kity19 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение цветом столбца и строки активной ячейки cerberochek Microsoft Office Excel 7 28.11.2012 12:56
Выделение строки цветом и вставка символа konistra Microsoft Office Excel 4 16.06.2010 21:16
Chart. Выделение нужной облости Djem1991 Общие вопросы Delphi 9 26.12.2009 23:13
Выделение цветом последней строки DBGrig Yura_S Помощь студентам 2 28.10.2009 08:35