Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
3-1162659008
pirate
2006-11-04 19:50
2007.01.28
проблемы разработки программ для образования


2-1168190561
Влад
2007-01-07 20:22
2007.01.28
OR


15-1168205660
maxmaxov
2007-01-08 00:34
2007.01.28
где в Питере можно купить редкие фильмы, кроме как на Юноне?


2-1168345826
Still Swamp
2007-01-09 15:30
2007.01.28
Проблемы с евритом


15-1168244315
vajo
2007-01-08 11:18
2007.01.28
Посоветуйте колонки для компьютера.




   Наверх