Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
Hooch ©   (2003-05-19 13:15) [0]

День добрый, Господа !
никак не могу решить проблему: нужно что б "дочерняя" форма "плавала" на "родительской" и не уходила за её пределы, т.е. аналог MDI форм, что б реализовать "плавание" делаю так


with Params do begin
Style := Style or WS_OVERLAPPED;
WndParent := Application.MainForm.Handle;
end;


но никак не получается сделать что б форма не уходила за пределы "родительской" если задать Parent, то начинаются проблемы с фокусом, если задать ManualDock(ParentForm), исчезает заголовок у дочерней формы, как быть то ?


 
Skier ©   (2003-05-19 13:25) [1]

В экранные координаты переводишь ?


 
Hooch ©   (2003-05-19 13:30) [2]

в смысле ?


 
Юрий Зотов ©   (2003-05-19 13:31) [3]

procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm2.Create(Self) do
begin
Parent := Self;
Show
end
end;

И все. Проблем с фокусом не обнаружено.


 
Skier ©   (2003-05-19 13:33) [4]

WinAPI - ClientToScreen(...)


 
Hooch ©   (2003-05-19 13:38) [5]

>> Юрий Зотов ©
например: бросьте на Form2 TEdit и попробуйте в него попасть левым кликом мыши, у меня не получается :-(


 
Hooch ©   (2003-05-19 13:47) [6]

>> Skier ©
предлагаете WM_GETMINMAXINFO отслеживать ?


 
Skier ©   (2003-05-19 13:51) [7]

WM_MOVING
WM_SIZING
WM_SYSCOMMAND


 
Hooch ©   (2003-05-19 13:55) [8]

>> Skier ©
а проще нет способа :-)


 
Skier ©   (2003-05-19 14:02) [9]

>Hooch © (19.05.03 13:55)
Конечно есть ! см. Юрий Зотов © (19.05.03 13:31)


 
Hooch ©   (2003-05-19 14:03) [10]

>> Skier ©
это не прокатит, см. мои коментарии ниже :-)


 
Skier ©   (2003-05-19 14:05) [11]

>Hooch © (19.05.03 14:03)
Ну и...какой делаем вывод ? :)


 
Hooch ©   (2003-05-19 14:08) [12]

>> Skier ©
либо писать на MDI либо застрелится :-))


 
Юрий Зотов ©   (2003-05-19 14:18) [13]

> Hooch © (19.05.03 13:38)

Хм... а ведь и у меня не получилось. Значит, ручками. Только, думаю, можно отследить размеры и позицию в одном обработчике WM_WINDOWPOSCHANGING. А WM_SYSCOMMAND потребуется для обработки сворачивания-разворачивания и т.п.


 
Hooch ©   (2003-05-19 14:26) [14]

ну что ж, всем спасибо, бум писать ручками :-)



Страницы: 1 вся ветка

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
1-94872
testthewest
2003-05-16 12:36
2003.05.29
Почему в dpr нельзя написать Application.Title := Form1.Caption


1-94818
Hooch
2003-05-19 13:15
2003.05.29
---|Ветка была без названия|---


1-94940
Мыш
2003-05-14 18:59
2003.05.29
Куда пропадает память?


14-95040
Soft
2003-05-07 16:21
2003.05.29
Какой Linux более стабилен, удобен, быстр...


1-94893
nevalex
2003-05-15 00:33
2003.05.29
Как сделать чтоб моя прога открывала файлы при нажатии на них