Конференция "WinAPI" » GWL_EXSTYLE в windows XP [WinXP]
 
  • Василий К. (25.10.07 11:13) [0]
    Ребят, подскажите, что не так:

    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;

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

    как бы разобраться?
  • Lacmus © (25.10.07 12:26) [1]
    Какая версия Delphi ?
  • Василий К. (25.10.07 12:43) [2]
    CodeGear 2007
    в 2006 проблем не возникало.
  • Lacmus © (25.10.07 12:59) [3]
    Изменить для 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.


  • Василий К. (25.10.07 13:04) [4]
    А в саму процедуру что записать?
  • Василий К. (25.10.07 13:22) [5]
    Это помогло. Но приходится данную процедуру забивать в каждую новосоздаваемую форму :(

    Нет ли других решений? И почему этот баг имеет место быть?
  • Lacmus © (25.10.07 13:57) [6]
    >Это помогло. Но приходится данную процедуру забивать в каждую новосоздаваемую форму :(

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

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

    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;


  • Прохожий (26.10.07 12:56) [7]
    Удалено модератором
    Примечание: Забаню за неуважение к правилам
 
Конференция "WinAPI" » GWL_EXSTYLE в windows XP [WinXP]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]