![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SetFocus и ScrollBox
StriderMan © (2006-12-04 13:40:00)Всем привет!
Есть ScrollBox, на нем лежит панелька. Если сказать панельке SetFocus, то ScrollBox откручивается в левый верхний угол, что для моей задачи неприемлимо. Как побороть?
StriderMan (2006-12-04 16:09:00) [1]
> clickmaker © (04.12.06 15:54) [8]
Помогло! огромное спасибо!
umbra (2006-12-04 16:06:00) [2]если делать что-то наподобие
procedure TForm1.Button1Click(Sender: TObject);
begin
panel1.Tag := ScrollBox1.VertScrollBar.Position;
panel1.SetFocus;
ScrollBox1.VertScrollBar.Position := panel1.Tag;
end;
то полоса прокрутки не двигается
StriderMan (2006-12-04 15:55:00) [3]
> Джо © (04.12.06 15:48) [6]
> Т.е, скроллится так, чтобы панель была видна на экране.
но если панелька полностью в скроллбокс не помещается, то показать он в первую очередь пытается верхний левый угол
clickmaker (2006-12-04 15:54:00) [4]а если тупо?
SendMessage(ScrollBox1.Handle, WM_SETREDRAW, 0, 0);
try
H := ScrollBox1.HorzScrollBar.Position;
V := ScrollBox1.VertScrollBar.Position;
Panel1.SetFocus;
ScrollBox1.HorzScrollBar.Position := H;
ScrollBox1.VertScrollBar.Position := V;
finally
SendMessage(ScrollBox1.Handle, WM_SETREDRAW, 1, 0);
ScrollBox1.Invalidate;
end;
Джо (2006-12-04 15:48:00) [5]Т.е, скроллится так, чтобы панель была видна на экране.
Джо (2006-12-04 15:48:00) [6]Да и то не всегда. Странное поведение.
Джо (2006-12-04 15:47:00) [7]> . Если сказать панельке SetFocus, то ScrollBox откручивается
> в левый верхний угол,
Хм. А у меня скроллится в правый нижний.
StriderMan (2006-12-04 15:36:00) [8]
> StriderMan © (04.12.06 15:19) [3]
ошибочка. не помогло :(
StriderMan (2006-12-04 15:19:00) [9]вобщем победиил таким кривым Макаром. правда при этом мерцают скроллбары;
ScrollBox1.AutoScroll := false;
try
Panel1.SetFocus;
finally
ScrollBox1.AutoScroll := true;
end;
ЗЫ: DisableAutoRange не помогло
StriderMan (2006-12-04 15:06:00) [10]
> umbra © (04.12.06 14:43) [1]
осталось сообразить, как сказать скроллбоксу, что такое "назад" :)
umbra (2006-12-04 14:43:00) [11]окрутить назад :)