Главная страница
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.054 c
15-1167984292
DeadMeat
2007-01-05 11:04
2007.01.28
"Родные" *.ЕХЕ от Висты не работают в ХР


2-1168164663
Ламер 2.Х
2007-01-07 13:11
2007.01.28
Надежность передачи???


15-1168275480
Petr V. Abramov
2007-01-08 19:58
2007.01.28
а существует ли что-то типа DBTreeView


15-1167986950
Chuk & Gek
2007-01-05 11:49
2007.01.28
ГМТ,


15-1168176514
Ringo
2007-01-07 16:28
2007.01.28
Меня тут друг позвал помочь, мышь тормозит.