Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Минимизирование формы при запуске

Мне необходимо при запуске приложения спрятать главную форму, но, к сожалению, это не работает. После того, как я установил в главной форме свойство WindowState в wsMinimized и запустил ее, форма свернулась на рабочем столе Win95 вместо положенной панели задач.

Кто-нибудь знает как решить эту проблему?

Была одна статья по этому поводу в Delphi Magazine, Issue 19, март 1997, которая объясняла эту проблему.

Вот мой переработанный вариант обхода ошибки:


unit Foobar;

interface

type

  TfrmFoobar = class(TForm);
procedure DoRestore(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
  { Private declarations }
public
  { Public declarations }
end;

implementation

procedure TfrmUVChannel.FormCreate(Sender: TObject);
begin

  //Устанавливаем временный обработчик события восстановления формы приложения
  Application.OnRestore := DoRestore;
  Application.Minimize;
end;

procedure TfrmFoobar.DoRestore(Sender: TObject);
begin

  Application.ShowMainForm := True;
  //Восстанавливаем приложение
  Perform(wm_SysCommand, sc_Restore, 0);
  //Гарантируем правильную перерисовку всех компонентов
  Show;
  //Убираем временного обработчика события чтобы не вызывался в будущем
  Application.OnRestore := nil;
end;

initialization

  //Здесь прячем минимизированную главную форму
  Application.ShowMainForm := False;

end.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay