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

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

Как открыть форму чтобы она отображалась по Alt+TAB [D6, WinXP]


Arhelon ©   (2004-11-04 15:37:00) 

Собственно сабж.
В приложении несколько форм хотелось бы переключаться между ними по Alt+TAB


Arhelon   (2004-11-05 10:26:00) [1]

Вери сори!!!
У меня просто уже давно стоит TaskSwitchXP
http://taskswitchxp.sourceforge.net/
Который мне это не отображает :(

А ларчик то давно отрыт.


Игорь Шевченко   (2004-11-05 09:58:00) [2]

unit main;

interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 Menus;

type
 TForm1 = class(TForm)
   MainMenu1: TMainMenu;
   File1: TMenuItem;
   Exit1: TMenuItem;
   N1: TMenuItem;
   Showchild1: TMenuItem;
   procedure Showchild1Click(Sender: TObject);
   procedure FormActivate(Sender: TObject);
 protected
   procedure CreateParams (var Params : TCreateParams); override;
 end;

var
 Form1: TForm1;

implementation
uses
 Child;

{$R *.DFM}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
 inherited;
 with Params do
   ExStyle := ExStyle or WS_EX_APPWINDOW;
end;

procedure TForm1.Showchild1Click(Sender: TObject);
begin
 with TForm2.Create(Application) do
   Show;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 ShowWindow(Application.Handle, SW_HIDE);
end;

end.


unit Child;

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

type
 TForm2 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure FormCreate(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 public
   procedure CreateParams(var Params : TCreateParams); override;
 end;

var
 Form2: TForm2;

implementation
uses
 ModalForm;
{$R *.DFM}

var ChildInstance : Integer;

procedure TForm2.Button1Click(Sender: TObject);
begin
 Close;
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.ExStyle := Params.ExStyle OR WS_EX_APPWINDOW;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action := caFree;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
 Inc(ChildInstance);
 Caption := Format('Child %d', [ChildInstance]);
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
 with TForm3.Create(Application) do
   try
     ShowModal;
   finally
     Free;
   end;
end;

end.


object Form2: TForm2
 Left = 192
 Top = 107
 Width = 544
 Height = 375
 Caption = 'Child form'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 OnClose = FormClose
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Button1: TButton
   Left = 256
   Top = 316
   Width = 75
   Height = 25
   Cancel = True
   Caption = 'Close'
   Default = True
   TabOrder = 0
   OnClick = Button1Click
 end
 object Button2: TButton
   Left = 348
   Top = 316
   Width = 75
   Height = 25
   Caption = 'Show Dialog'
   TabOrder = 1
   OnClick = Button2Click
 end
end


Arhelon   (2004-11-05 07:06:00) [3]

WS_EX_APPWINDOW отображает окно только на панели задач (что уже давно сделано) но вот с трабл Alt+TAB оно не решает :(
Но всё равно спасибо за ответ.


Игорь Шевченко   (2004-11-04 16:13:00) [4]

Прочитать про WS_EX_APPWINDOW, поискать примеры


Наверх

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