Code:

{©Drkb v.3: www.drkb.ru}

showwindow(Application.handle, SW_HIDE);

showwindow(Frorm1.handle, SW_HIDE);

 

 

При создании окна обработчики событий выполняются в следующем порядке:

 

       OnCreate

       OnShow

       OnPaint

       OnActivate

       OnResize

       OnPaint (снова)

 

Copyright © 1996 Epsylon Technologies

Взято из FAQ Epsylon Technologies

 

Code:

procedure ShowMainForm;

{©Drkb v.3www.drkb.ru}

var

hWnd, hCurWnd, dwThreadID, dwCurThreadID: THandle;

OldTimeOut: DWORD;

AResult: Boolean;

begin

ShowWindow(Application.Handle, SW_RESTORE);

Application.MainForm.Visible := True;   // Показываем главную форму

 

// Ставим нашу форму впереди всех окон

hWnd := Application.Handle;

SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);

SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(0), 0);

SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

hCurWnd := GetForegroundWindow;

AResult := False;

while not AResult do

begin

   dwThreadID := GetCurrentThreadId;

   dwCurThreadID := GetWindowThreadProcessId(hCurWnd);

   AttachThreadInput(dwThreadID, dwCurThreadID, True);

   AResult := SetForegroundWindow(hWnd);

   AttachThreadInput(dwThreadID, dwCurThreadID, False);

end;

SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0);

end;

 

 

Code:

type

TForm1 = class(TForm)

   procedure WndProc (var message: TMessage); override;

private

   { Private declarations }

public

   { Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.WndProc (var message: TMessage);

begin

case message.Msg of                        

    WM_WINDOWPOSCHANGING: PWindowPos(Message.LParam)^.hwndInsertAfter:=HWND_BOTTOM;

end;

  inherited;

end;

Автор: antonn

Для начала необходимо установить свойство формы KeyPreview в True. А потом уже можно отлавливать "Esc":

Code:

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.KeyPreview := True;

end;

 

procedure TForm1.FormKeyPress

(Sender: TObject; var Key: Char);

begin

if key = #27 then Close;

end;

 

  

Code:

library Form;

uses

Classes,

Unit1 in 'Unit1.pas' {Form1};

exports

CreateMyForm,

DestroyMyForm;

end.

 

 

Code:

ModalForm := TModalForm.Create(Self);

try

ModalForm.ShowModal;

finally

ModalForm.Free;

end;

 

Используйте функцию Windows API SetSysModalWindow(). Код ниже демонстрирует технологию работы с этой функцией. В любой момент времени может быть возможен только один модально-системны диалог, чей дескриптор возвращается функцией SetSysModalWindow(). Вам необходимо запомнить возвращаемую функцией величину для того, чтобы завершить показ диалога таким образом. Вот как примерно это должно выглядеть:

 

Можно, но только во время загрузки приложения. Чтобы сделать это выберите "View->Project Source" и измените код инициализации приложения, так что порядок создания форм зависил от какого-то условия.

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

Code:

begin

Application.Initialize;

if < какое - то условие > then

   begin

     Application.CreateForm(TForm1, Form1);

     Application.CreateForm(TForm2, Form2);

   end

else

   begin

     Application.CreateForm(TForm2, Form2);

     Application.CreateForm(TForm1, Form1);

   end;

end.

Application.Run;

 

  

Работает в 2k/XP:

Code:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

{©Drkb v.3(2007): www.drkb.ru}

begin

AnimateWindow(Handle, 500, AW_HIDE or AW_BLEND);

end;

 

Автор: p0s0l

 

 

Просто замените конструктор Create класса Вашей формы.

Code:

unit Unit2;

 

interface

 

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

 

type

TForm2 = class(TForm)

private

{Private declarations}

public

   constructor CreateWithCaption(aOwner: TComponent; aCaption: string);

{Public declarations}

end;

 

var

Form2: TForm2;

 

implementation

 

{$R *.DFM}

 

constructor TForm2.CreateWithCaption(aOwner: TComponent; aCaption: string);

begin

Create(aOwner);

Caption := aCaption;

end;

 

uses Unit2;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Unit2.Form2 := Unit2.TForm2.CreateWithCaption(Application, 'My Caption');

Unit2.Form2.Show;

end;