| 
| 
 | Вопрос # 937/ вопрос открыт / | 
 |  Здравствуйте!Как сделать форму внутри главной с границами bsSizeToolWin, прилипающую к границам главной формы и неактивизирующуюся при нажатии мышки?
 
|  |   Вопрос задал: Евгений Eklmn (статус: Посетитель)Вопрос отправлен: 24 сентября 2007, 15:25
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: SMaks Здравствуйте, Трофимов Евгений! Во первых нужно создать обычно вторую форму с границей bsSizeToolWin. И при показе первой формы установить родитель второй формы и показать ее. Для создания эффекта "липкого окна" можно использовать свойства второй формы ScreenSnap и SnapBuffer. Однако, при таком подходе второе окно будет прилепать только к левой и верхней границам. Если этот факт для вас критичен, то можно вручную отслеживать положение формы и делать окно "липким". Чтобы создать неактивное окно, нужно перекрыть обработчик CreateParams второй формы и добавить парамерт WS_CHILDWINDOW. Приложение:Переключить в обычный режим unit1;...uses  ...Unit2;...procedure TForm1.FormShow(Sender: TObject);begin  Windows.SetParent(Form2.Handle, Form1.Handle);  Form2.BorderStyle := bsSizeToolWin;  Form2.ScreenSnap := true;  Form2.Show;end;... unit2; TForm2 = class(TForm)...  protected    procedure CreateParams( var Params: TCreateParams ); override;...procedure TForm2.CreateParams(var Params: TCreateParams);begin  inherited;  Params.Style := Params.Style or WS_CHILDWINDOW;end;...
|  | Ответ отправил: SMaks (статус: 1-ый класс)Время отправки: 29 сентября 2007, 17:09
 Оценка за ответ: 5
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |