![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть форму чтобы она отображалась по 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, поискать примеры