Главная страница
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.187 c
15-1168272112
GrayFace
2007-01-08 19:01
2007.01.28
Как запоролить расшаренную папку в XP?


2-1168357487
Pisar
2007-01-09 18:44
2007.01.28
CoolBar


15-1167579985
DevilDevil
2006-12-31 18:46
2007.01.28
Отдельное поздравление DimeBr!


15-1167953131
Tirael
2007-01-05 02:25
2007.01.28
куда делся sysinternals?


11-1127366651
TRUF
2005-09-22 09:24
2007.01.28
Drag&Drop