Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

SetFocus и ScrollBox   Найти похожие ветки 

 
StriderMan ©   (2006-12-04 13:40) [0]

Всем привет!

Есть ScrollBox, на нем лежит панелька. Если сказать панельке SetFocus, то ScrollBox откручивается в левый верхний угол, что для моей задачи неприемлимо. Как побороть?


 
umbra ©   (2006-12-04 14:43) [1]

окрутить назад :)


 
StriderMan ©   (2006-12-04 15:06) [2]


> umbra ©   (04.12.06 14:43) [1]

осталось сообразить, как сказать скроллбоксу, что такое "назад" :)


 
StriderMan ©   (2006-12-04 15:19) [3]

вобщем победиил таким кривым Макаром. правда при этом мерцают скроллбары;
 ScrollBox1.AutoScroll := false;
 try
   Panel1.SetFocus;
 finally
   ScrollBox1.AutoScroll := true;
 end;


ЗЫ: DisableAutoRange не помогло


 
StriderMan ©   (2006-12-04 15:36) [4]


> StriderMan ©   (04.12.06 15:19) [3]

ошибочка. не помогло :(


 
Джо ©   (2006-12-04 15:47) [5]

> . Если сказать панельке SetFocus, то ScrollBox откручивается
> в левый верхний угол,

Хм. А у меня скроллится в правый нижний.


 
Джо ©   (2006-12-04 15:48) [6]

Т.е, скроллится так, чтобы панель была видна на экране.


 
Джо ©   (2006-12-04 15:48) [7]

Да и то не всегда. Странное поведение.


 
clickmaker ©   (2006-12-04 15:54) [8]

а если тупо?

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;


 
StriderMan ©   (2006-12-04 15:55) [9]


> Джо ©   (04.12.06 15:48) [6]
> Т.е, скроллится так, чтобы панель была видна на экране.

но если панелька полностью в скроллбокс не помещается, то показать он в первую очередь пытается верхний левый угол


 
umbra ©   (2006-12-04 16:06) [10]

если делать что-то наподобие

procedure TForm1.Button1Click(Sender: TObject);
begin
 panel1.Tag := ScrollBox1.VertScrollBar.Position;
 panel1.SetFocus;
 ScrollBox1.VertScrollBar.Position := panel1.Tag;
end;


то полоса прокрутки не двигается


 
StriderMan ©   (2006-12-04 16:09) [11]


> clickmaker ©   (04.12.06 15:54) [8]

Помогло! огромное спасибо!



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
15-1168244906
Nic
2007-01-08 11:28
2007.01.28
Регистрация Turbo Delphi :)


15-1166616949
Иксик
2006-12-20 15:15
2007.01.28
Как по исходному коду определить какую траву курили программисты?


1-1164875052
MetalFan
2006-11-30 11:24
2007.01.28
IHMTLDocument2.write


11-1145378794
thaddy
2006-04-18 20:46
2007.01.28
Problem with new cute control ;)


15-1168486866
Slider007
2007-01-11 06:41
2007.01.28
С днем рождения ! 11 января