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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 20:07   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Вопрос Видоизменение выделенной строки в ListBox Delphi

!Здравствуйте!

Подскажите пожалуйста как мне реализовать вот такую вот штуку:

combo_ListBox002.png

1 - А точнее изменить вид выделение строки.
Я вас очень прошу, очень нужно.
!Заранее очень благодарен!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума
Старый 10.11.2009, 22:20   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

либо готовыми компонентами, поищите buisnessskin либо самому.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 10.11.2009, 22:21   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Создайте такую картинку.
Теперь вам в помощь - стандартный хэлп.
OnDrawItem event (TCustomListBox) - там есть пример, как рисовать в строке листбокса картинку.
А чтобы вывести текст поверх нее, вам нужно убрать красное в строке:
TextOut(Rect.Left + Offset, Rect.Top,...
mihali4 вне форума
Старый 12.11.2009, 00:21   #4
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание

Извините но я в этих делах полный ламер!
Я выложу исходник того что у меня получилось.
Помогите пожалуйста.
А то он глючит по страшному.

ListBox.rar

Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума
Старый 12.11.2009, 01:13   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

используйте событие ondrawitem (вам уже указал - mihali4):
Код:
var
  Form1: TForm1;
  BMP: TBitmap;

implementation

{$R *.dfm}

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
 with (control as tlistbox).Canvas do begin
  FillRect(Rect);
  Draw(Rect.Left + 1, Rect.Top,BMP);
  Brush.Style:= bsClear;

  TextOut(Rect.left + 19, Rect.Top+1,(Control as TListBox).Items[Index])
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 BMP:= TBitmap.Create;
 BMP.LoadFromFile('1.bmp');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 bmp.Free
end;
не забудьте свойство listbox поставить в otherdrawfixed... впрочем см. вложение
(выделение сетки убрать через offset... это вы уже сами)
Изображения
Тип файла: jpg скрин.jpg (34.1 Кб, 218 просмотров)
Вложения
Тип файла: zip ListBox2.zip (3.2 Кб, 51 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 12.11.2009, 01:26   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Я бы только добавил, что нужно ввести проверку
if (Control as TListBox).Selected[Index] then
а потом
else
то же самое, но с "пустой" картинкой.

P.S. И еще одна тонкость - с листбоксом что ни делай, он, собака такая, никак не реагирует.
Я знаю только один способ заставить его среагировать:
Код:
ListBox1.Visible:=False;
ListBox1.Visible:=True;

Последний раз редактировалось mihali4; 12.11.2009 в 01:28.
mihali4 вне форума
Старый 12.11.2009, 01:29   #7
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

Спасибо всем большое!!! =-)
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума
Старый 12.11.2009, 02:53   #8
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

А как можно или убрать ScrollBar или изменить его вид?
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума
Старый 12.11.2009, 11:24   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Одна тема - один вопрос.
Читаем правила.
Закрыто.
mihali4 вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление выделенной строки из DBGrid Sinker БД в Delphi 9 20.05.2011 03:09
Определение выделенной ячейки в таблице в Delphi Гео Помощь студентам 3 13.06.2008 14:51
доступ к элементам выделенной строки в DBGrid yulia БД в Delphi 2 12.12.2007 12:51
Строки в ListBox Ray1987 Компоненты Delphi 2 10.04.2007 00:57