Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.065 c
15-1167928848
Kolan
2007-01-04 19:40
2007.01.28
Как в VB обратится к элементу строки?


2-1167434222
Wind
2006-12-30 02:17
2007.01.28
FieldByName


15-1167997829
DelphiLexx
2007-01-05 14:50
2007.01.28
Бесплатна ли библиотека JVCL


2-1168428563
Megabyte
2007-01-10 14:29
2007.01.28
Открыть страницу в браузере без компонента TWebBrowser


2-1168686353
Влад
2007-01-13 14:05
2007.01.28
Завершение работы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский