Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запретить сворачивание дочерних окон при сворачивании основного [D7, WinXP]


pesttt ©   (2009-09-17 16:42:00) 

привет всем.

как сделать так, чтобы дочение окна не сворачивались, когда я сворачиваю главное окно?
и еще такая ситуация бывает. главное окно свернуто, а в это время активируется дочернее окно, и пока его не закроешь, главное окно развернуть не получается


pesttt   (2009-09-18 10:35:00) [1]


> Palladin ©   (17.09.09 17:37) [3]
> юный падаван даже не перешел по ссылке... прискорбно....
>

и правда, прочитал и реализовал приложение "MDI в стиле Word".

создал форму, назначил ее главной и скрыл ее вот так:
program Project1;

uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1},
 Unit2 in 'Unit2.pas' {Form2},
 Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
 Application.Initialize;
//  Application.MainFormOnTaskbar := True;
 Application.ShowMainForm := false;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

на создании этой формы написал
procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowLong(Application.Handle,GWL_ExStyle,GetWindowLong(Application.Handle,GW L_ExStyle) or WS_EX_ToolWindow);
 form2 := TForm2.Create(nil);
 form2.Show;
end;

form2 - это и будет моя главная форма чата. чтобы у нее бвла своя кнопка на панели задач и чтобы форма сворачивалась нормально туда же написал создал в  protected
   procedure CreateParams(var Params: TCreateParams);override;

и написал procedure TForm2.CreateParams(var Params: TCreateParams);
begin
 inherited;
 // Добавляем в расширенный стиль флаг WS_EX_AppWindow,
 // чтобы форма с документом имела кнопку на панели задач.
 Params.ExStyle:=Params.ExStyle or WS_EX_AppWindow
end;

а при закрытии form2 написал procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Application.Terminate
end;


теперь при выводе форм-подсказок в нижнем правом углу и сворачивании/разворачивании главной формы никаких проблем не возникает.

Palladin, большое спасибо!


Сергей М.   (2009-09-17 20:07:00) [2]


> Palladin ©   (17.09.09 17:41) [4]


И вправду - раньше тебе было легче)

Таки "пр искорбно", ибо "близко к состоянию скорби"


TIF   (2009-09-17 18:22:00) [3]

> фу ты господи, ужость....

Не ужость. Пр искорбно (так и только так)
Дальнейшее обсуждение по поводу русского языка и старения переношу в "Прочее" ;-)


Palladin   (2009-09-17 17:41:00) [4]

фу ты господи, ужость.... пр ескорбно


Palladin   (2009-09-17 17:37:00) [5]

юный падаван даже не перешел по ссылке... прискорбно....


pesttt   (2009-09-17 17:33:00) [6]

опишу по подробнее ситуацию, чтобы было понятно что мне надо:

главное окно - онкно чата. дочернее окно - окно подсказки в правом нижнем углу экрана.

когда окно чата свернуто, и в этот момент появляется окно подсказки, то пока окно подсказки не закроется я не погу восстановить окно чата.

Palladin, а вы мне загуглили про mdi окна, которые, на сколько я знаю, не выходят за пределы главного окна


Palladin   (2009-09-17 17:15:00) [7]

главное окно это пакетик
дочерние окна - они сидят в этом пакетике, они не могут не свернуться если свернуть пакетик

тебе немножко не хватило до уровня "правильный составитель строк для поиска в гугл"
дарую тебе экспириенс
http://www.google.ru/search?hl=ru&safe=off&newwindow=1&q=%D0%BE%D0%BA%D0%BD%D0%B0+%D0%BA%D0%B0%D0%BA+%D0%B2+word+delphi+mdi&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=


Наверх

Титульная страница Поиск, карта сайта Написать письмо