Форма со свойством Stay On Top уходит на задний план

Торопунька
Дата: 05.06.2009 13:50:22
Уважаемые гуру, помогите советом!

Есть приложение, задача которого привлечь к себе внимание, а именно форма на весь экран поверх всех. На своей машине повторить так и не удалось, но на 3-х сам видел при запуске офисных программ (ворд, эксель и т.д.) они выполняются поверх моего приложения, а форма моего уходит на задний план (правда это не постоянно, а какой - то плавающий баг).

Пишу на Delphi 2009 с последники патчами, ось Win XP SP2

object Form1: TForm1
  AlignWithMargins = True
  Left = 0
  Top = 0
  BorderIcons = []
  BorderStyle = bsNone
  BorderWidth = 5
  Caption = 'Form1'
  ClientHeight = 505
  ClientWidth = 594
  Color = clBtnHighlight
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  FormStyle = fsStayOnTop
  OldCreateOrder = False
  Position = poDesigned
  ShowHint = True
  Visible = True
  WindowState = wsMaximized
  OnCreate = FormCreate
  OnKeyDown = FormKeyDown
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
  object Image1: TImage
    Left = 8
    Top = 16
    Width = 300
    Height = 300
    Hint = #1059' '#1084#1077#1085#1103' '#1089#1077#1075#1086#1076#1085#1103' '#1093#1086#1088#1086#1096#1077#1077' '#1085#1072#1089#1090#1088#1086#1077#1085#1080#1077'!'
    AutoSize = True
    Center = True
    ParentShowHint = False

Может где в свойствах формы я что не так сделал?
Торопунька
Дата: 05.06.2009 17:54:54
В общем, вроде разобрался. На событие Form Create поставил ShowModal, но получил странный эффект, теперь чтобы закрыть форму нужно 2 раза кликнуть на Image на форме, там же (по клику) происходит запись в базу и закрытие формы, вот тут самое интересное, в базу заносятся 2 строки.
Я что - то не понимаю, при переходе в модальный режим после создания, создается ещё 1 форма?
Или как это все понимать? Уже мозг дымится, ничего не понимаю.
andreymx
Дата: 06.06.2009 00:16:34
Торопунька
На событие Form Create поставил ShowModal
А зачем?
Торопунька
Дата: 08.06.2009 09:41:48
andreymx,

Только после этого исчезла возможность ухода формы на второй план.
andreymx
Дата: 08.06.2009 10:27:26
Торопунька
andreymx,

Только после этого исчезла возможность ухода формы на второй план.
У Вас же в dpr наверное всё равно остался вызов show?
Vanzelius
Дата: 08.06.2009 10:51:59
Form1.BringToFront;
Торопунька
Дата: 08.06.2009 11:29:28
andreymx
Торопунька
andreymx,

Только после этого исчезла возможность ухода формы на второй план.
У Вас же в dpr наверное всё равно остался вызов show?


begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Я его не правил, он остался стандартным.
Торопунька
Дата: 08.06.2009 11:30:49
Vanzelius,

А это по какому событию?
andreymx
Дата: 08.06.2009 11:38:41
Торопунька
andreymx
Торопунька
andreymx,

Только после этого исчезла возможность ухода формы на второй план.
У Вас же в dpr наверное всё равно остался вызов show?


begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Я его не правил, он остался стандартным.
Application.Run все равно вызывает Вашу main.форму. Попробуйте его заменить на Form1.showmodal, а showmodal уберите из onCreate.