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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2016, 00:02   #1
factually
Пользователь
 
Регистрация: 24.10.2016
Сообщений: 21
Вопрос Сбивается фокус на Scrollbox'e

На форме ScrollBox и SpinGrid. На ScrollBox'e установлены св-ва: AutoMouseWheel = True, AutoScroll = True, Tracking h/v = true.
Если сначала прокручивать колёсиком, то всё норм прокручивается, но после клика на spingrid фокус сбивается с ScrollBox'a и колёсиком мыши больше не прокрутить. Как это исправить?
factually вне форума Ответить с цитированием
Старый 13.11.2016, 09:17   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. кликнуть обратно на Scrollbox (вернуть фокус вручную)
2. найти подходящее Event и вернуть фокус(SetFocus) кому надо программно.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.11.2016, 14:06   #3
factually
Пользователь
 
Регистрация: 24.10.2016
Сообщений: 21
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
1. кликнуть обратно на Scrollbox (вернуть фокус вручную)
2. найти подходящее Event и вернуть фокус(SetFocus) кому надо программно.
1. при клике на скролл фокус не возвращается почему-то.
2. помогло, спасибо
Но возникла проблема, сбивается позиция скролла при SetFocus,e.
Пробую так:
Код:
procedure TForm4.StringGrid1Click(Sender: TObject);  var
i:integer;
begin
  I:=sScrollBox2.VertScrollBar.ScrollPos;
 sScrollbox2.SetFocus;
 sScrollBox2.VertScrollBar.Position:=I;
end;
Но скролл всё равно уходит вверх при клике на Striggrid.

Последний раз редактировалось factually; 13.11.2016 в 14:42.
factually вне форума Ответить с цитированием
Старый 13.11.2016, 21:00   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

ЕСЛИ вам НЕ НАДО чтобы StringGrid вообще получал фокус, то
проще ЗАБЛОКИРОВАТЬ ему данную функцию
StringGrid.Enabled:=false;

ЕСЛИ на ScrollBox только и есть что StringGrid, то зачем он(ScrollBox)?
для прокрутки колесом таблицы
Для этого можно использовать OnMouseWell в StringGrid (насколько помню он там есть).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбивается пинг Programmer0 Работа с сетью в Delphi 14 08.04.2016 08:17
Сбивается нумерация страницы в MO WORD DarkingBluth Microsoft Office Word 1 27.02.2013 17:55
ScrollBox ВалекFCRK Общие вопросы Delphi 1 08.06.2011 23:41
ScrollBox SNUPY Помощь студентам 3 22.09.2009 18:51
ScrollBox Mickle Помощь студентам 1 31.03.2007 14:10