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

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

GWL_EXSTYLE в windows XP [WinXP]


Василий К. ©   (2007-10-25 11:13:00) 

Ребят, подскажите, что не так:

var
ExtendedStyle : integer;

 ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
 SetWindowLong(Application.Handle, GWL_EXSTYLE,
   ExtendedStyle or WS_EX_TOOLWINDOW);
 Application.Initialize;
 Application.CreateForm(TfmDesktop, fmDesktop);
 Application.Run;

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

как бы разобраться?


Прохожий   (2007-10-26 12:56:00) [1]

Удалено модератором
Примечание: Забаню за неуважение к правилам


Lacmus   (2007-10-25 13:57:00) [2]

>Это помогло. Но приходится данную процедуру забивать в каждую новосоздаваемую форму :(

Повторить не удалось.

>Нет ли других решений?

ShowWindow(Application.Handle, SW_HIDE) ?

>И почему этот баг имеет место быть?

Скорее так задумано



{ Forms.pas }

procedure TCustomForm.VisibleChanging;
begin
 if (FormStyle = fsMDIChild) and Visible and (Parent = nil) then
   raise EInvalidOperation.Create(SMDIChildNotVisible);
 if (Self = Application.MainForm) and not (csDestroying in ComponentState) then
 begin
   if Visible then
   begin
     ChangeAppWindow(Handle, not Application.MainFormOnTaskBar, True);
     ChangeAppWindow(Application.Handle, Application.ShowMainForm, True);
   end
   else
   begin
     ChangeAppWindow(Application.Handle, not Application.MainFormOnTaskBar, False);
     ChangeAppWindow(Handle, Application.MainFormOnTaskBar, True);
   end;
 end;
end;


Василий К.   (2007-10-25 13:22:00) [3]

Это помогло. Но приходится данную процедуру забивать в каждую новосоздаваемую форму :(

Нет ли других решений? И почему этот баг имеет место быть?


Василий К.   (2007-10-25 13:04:00) [4]

А в саму процедуру что записать?


Lacmus   (2007-10-25 12:59:00) [5]

Изменить для TfmDesktop



unit Unit79;

interface

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

type
 TForm79 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
   procedure VisibleChanging; override;
 end;

var
 Form79: TForm79;

implementation

{$R *.dfm}

procedure TForm79.VisibleChanging;
begin

end;

end.


Василий К.   (2007-10-25 12:43:00) [6]

CodeGear 2007
в 2006 проблем не возникало.


Lacmus   (2007-10-25 12:26:00) [7]

Какая версия Delphi ?


Наверх

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