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

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

Дочерние окна при сворачивании главного


Страницы:   1 2

RDS ©   (2006-07-05 16:54:00) 

Программа создает массив дочерних окон. Как можно следать, чтобы при сворачивании главного окна программы, дочерние окна оставались на экране.


Eraser   (2006-07-06 15:59:00) [21]

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


Eraser   (2006-07-06 15:59:00) [22]

> [14] Юрий Зотов ©   (06.07.06 15:57)

я забыл код второго модуля привести
unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm2 = class(TForm)
 protected
   procedure CreateParams(var Params: TCreateParams); override;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.WndParent := HWND_DESKTOP;
end;

end.


Юрий Зотов   (2006-07-06 15:57:00) [23]

> Eraser ©   (06.07.06 15:41) [13]

Проверил еще раз. Все делал ТОЧНО как Вы сказали. Не выскакивает.


Eraser   (2006-07-06 15:41:00) [24]

> [12] Юрий Зотов ©   (06.07.06 15:35)

ну как же не выскакивает?

Пример на Д2006, на Д7 тоже самое.
Проект из двух форм. На первой форме только 1 кнопка, на второй установлено свойство ShowHint = true и св-во Hint = 'test'
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 TForm2.Create(Application).Show;
end;

end.

при появлении хинта на 2 форме - 1 форма выскакивает на foreground.


Юрий Зотов   (2006-07-06 15:35:00) [25]

> Eraser ©   (06.07.06 13:34) [11]

Проверил. Ничего никуда не выскакивает (XP, D6).


Eraser   (2006-07-06 13:34:00) [26]

> [7] Юрий Зотов ©   (06.07.06 11:52)

только здесь появится один неприятный глюк, при появлении любого хинта, главная форма приложения будет "выскакивать" на передний план.
как с этим бороться - не знаю, какое-то решение видел в группах google, но оно тоже было глючным. Если знаете правильное решение - дайте знать пожалуйста.


Jeer   (2006-07-06 12:05:00) [27]

работает


StriderMan   (2006-07-06 12:04:00) [28]


> и на нее ShowWindow(hChild, SW_SHOW)

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


Jeer   (2006-07-06 11:54:00) [29]

А в принципе - можно.
Отлавливать минимизацию главного и на нее ShowWindow(hChild, SW_SHOW)


Юрий Зотов   (2006-07-06 11:52:00) [30]

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.WndParent := HWND_DESKTOP
end;


Jeer   (2006-07-06 11:38:00) [31]

Такова функциональность взаимодействия главного и дочерних окон неважно какой (MDI или SDI) режим выбран.


RDS   (2006-07-06 11:24:00) [32]

Под дочерними окнами я понимаю окна, создаваемые главным окном программы. Возможно формулировка не точная, но как это назвать по другому я не знаю.


Юрий Зотов   (2006-07-06 11:14:00) [33]

Верните FormStyle=fsNormal и поясните - если программа не MDI, то что Вы имеете в виду под словами "дочерние окна"? ParentWindow? Что-то еще?


RDS   (2006-07-06 10:59:00) [34]

Поставил в главном окне FormStyle=fsMDIForm. Результат тот же самый. При сворачивании главного окна сворачиваются и дочерние.


RDS   (2006-07-06 10:55:00) [35]

Главное окно программы имеет FormStyle=fsNormal. Это имелось в виду?


Юрий Зотов   (2006-07-06 10:51:00) [36]

Программа MDI?


Страницы:   1 2

Наверх

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