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

Вниз

Как активировать MDIChildlen[N]?   Найти похожие ветки 

 
Unknown user ©   (2004-12-22 18:27) [0]

Есть у TForm методы Next и Previous, позволяющие переключить фокус на следующую/предыдущую MDIChildlen, а как активировать MDIChildlen[N]?


 
Gero ©   (2004-12-22 18:37) [1]

MDIChildlen[N].BrightToFront


 
Unknown user ©   (2004-12-22 18:48) [2]

2 Gero. Почему-то работает неправильно. Меняет состояние окна из Maximized в Normal, затем обратно, и не срабатывает для MDIChildlen[0].


 
Gero ©   (2004-12-22 18:50) [3]


> Unknown user ©   (22.12.04 18:48)
> Меняет состояние окна из Maximized в Normal, затем обратно

Это недоработка MDI.


 
Unknown user ©   (2004-12-22 18:58) [4]

2 Gero. Prev, Next работает отлично. Как же быть?


 
MBo ©   (2004-12-22 20:51) [5]

Whenever an MDI child is activated, however, it moves to the front of the list. Thus, use I to index over all forms in the array, but not to refer to a specific form.


 
MBo ©   (2004-12-22 21:12) [6]

procedure TMainForm.ToolButton12Click(Sender: TObject);
begin
SendMessage(CLientHandle,WM_MDIACTIVATE,MDIChildren[Random(MdiChildCount-1)+1].handle,0);
end;

TMDIChild = class(TForm)
   Memo1: TMemo;
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
 procedure WMMdiActivate(var Msg : TWMMdiActivate); message WM_MDIACTIVATE;

...

procedure TMDIChild.WMMdiActivate(var Msg: TWMMdiActivate);
var
 Style: Longint;
begin
 if (Msg.ChildWnd = Handle) and (Msg.ActiveWnd = 0) and
   (biSystemMenu in BorderIcons) then begin
   Style := GetWindowLong(Handle, GWL_STYLE);
   if (Style and WS_MAXIMIZE <> 0) and (Style and WS_SYSMENU = 0) then
     SendMessage(Handle, WM_SIZE, SIZE_RESTORED, 0);
 end;
end;

(из borland конференций)


 
Unknown user ©   (2004-12-23 18:19) [7]

2 MBo. Информации по этому поводу нигде не нащел. Неужели я первый кто столкнулся с такой проблемой?


 
Unknown user ©   (2004-12-23 18:29) [8]

Попробуйте создать New|Projects|MDIApplication, затем в обработчике OnResize TMDIChild добавить showmessage("resize"), TMDIChild.WindowState:=wsMaximized и при переключении с одной MDI формы на другую при помощи MDIChildren[1].Show, BringToFront, SendMessage, неважно как, окно MDIChild сначала уменьшается в размерах, затем снова разворачивается на всю клиентскую область родительского окна. Как этого избежать? При Next и Previous такого не происходит.



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
4-1101028846
ViK_B
2004-11-21 12:20
2005.01.09
Опять про сообщения


14-1103707033
Hypercube
2004-12-22 12:17
2005.01.09
Программы как исполняемая информация


9-1093008860
Navi1982
2004-08-20 17:34
2005.01.09
Картинку в чужой кадр!!!


4-1100860875
PRM
2004-11-19 13:41
2005.01.09
Как запустить xcopy


1-1103615593
race1
2004-12-21 10:53
2005.01.09
перенос