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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2007, 11:15   #1
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Выделение в ListBox по правому клику

Нужно в ListBox по правому клику выделять пункт. Если мультиселект отключен то достаточно поменять ItemIndex на нужный, но если мультиселект включен, по изменению ItemIndex автоматического выделения (Selected) не происходит т.к. ItemIndex один, а выделений может быть несколько.
Выделить вручную можно (Selected:=true), но тогда нужно снять выделение с других пунктов если они выделены. Вот в этом и зключается вопрос. Единственное что пришло мне в голову это в цикле перебирать весь список. Может кто знает лучшее решение?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.10.2007, 12:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Пробуй так :

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ListBox1.Selected[ListBox1.ItemAtPos(Point(x,y),true)]:=not
ListBox1.Selected[ListBox1.ItemAtPos(Point(x,y),true)];

end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2007, 18:19   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Да нет, это не то. Надо не с одного а с всех.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.10.2007, 21:40   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

мне в голову ничего более умного, кроме как посылать сообщение списку, что якобы по нему ткнули левой кнопкой, не пришло:
Код:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
  begin
    ListBox1.Perform(WM_LBUTTONDOWN,MK_LBUTTON,x + y shl 16);
  end
end;

procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
  begin
    ListBox1.Perform(WM_LBUTTONUP,MK_LBUTTON,x + y shl 16);
  end
end;
pu4koff вне форума Ответить с цитированием
Старый 01.10.2007, 22:33   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

пробовал )) только я немного не так вызывал, но суть не в этом, суть в том что не подошло, не помню уже почему но не подошло

p.s. щас специально еще раз попробовал чтобы вспомнить - всплыв. меню перестает вызываться
хм, может и его принудительно вызвать?

p.p.s. нашел причину, все заработало, pu4koff Спасибо!
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 02.10.2007 в 00:43.
mutabor вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
закрытие страницы по клику на ссылке!!! Redvold HTML и CSS 1 09.06.2008 01:21
Выделение в StringGrid Лубышев Помощь студентам 2 08.06.2008 21:05
До выделение памяти MAKTE Общие вопросы C/C++ 4 20.05.2008 21:34
Выделение данных John Pepper Microsoft Office Excel 3 10.05.2008 19:09
StringGrid как выровнять по центру и по правому краю? MAcK Компоненты Delphi 5 03.09.2007 14:11