Як відключити автопрокрутку

Як відключити автопрокрутку.

Вітаю!
На ScrollBox_е знаходиться безліч компонентів. Кожен з них можна переміщати за допомогою миші. А проблема в тому, що коли компонент отримує фокус, ScrollBox автоматично прокручується, так щоб цей компонент було видно. Якщо його видно в повному обсязі то при натисканні на нього мишею він сильно зміщується. (Як можна відключити цю прокрутку?

я теж так хотів. але якщо AutoScroll: = false тоді пропадають смуги прокрутки

Перехопити WM_MOUSEWHEELE або щось в цьому роді.

а при чому тут WM_MOUSEWHEELE? коли tab_ом переходжу теж прокрутка відбувається

була така проблема, довелося зробити в формі наступні обробники:

1. на OnEnter контрола з фокусом
procedure TfrmSelParams.lvEnter (Sender: TObject);
begin
with TListView (Sender) do
if Items.Count> 0 then begin
if not Assigned (Selected) then
Selected: = Items [0];
Selected.Focused: = true;
FPos: = ScrBox.VertScrollBar.Position
end
end;

2. Обробка message CM_FOCUSCHANGED форми
procedure TfrmSelParams.WMFocusChanged (var Msg: TMessage);
begin
if TWinControl (Msg.LParam) is TListView then
ScrBox.VertScrollBar.Position: = FPos
end;

Я зберігав в FPos позицію тільки вертикального бару, в твоєму випадку можливо потрібно зберігати і горизонтального.

Пам'ять: 0.72 MB
Час: 0.033 c

Схожі статті