Страница 1 из 1

как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 26.08.2013 12:59:40
ya_vanka
День добрый.

Есть таой вот проект:

Код: Выделить всё
program OpenGLTest;

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  Forms, Interfaces,                      // нужно только для Lazarus

  WinsManagement, WinsDrawing;

begin
  WinManagement.AddWindow(10, 30, 640, 480, PAnsiChar('Main window'));
  WinManagement.AddWindow(700, 40, 540, 380, PAnsiChar('Secondary window'));

  WinManagement.SetDrawProc(0, @WinsDraw.DrawMainWindow);
  WinManagement.SetDrawProc(1, @WinsDraw.DrawWindow2);

  while (WinManagement.DrawWindows) do;   // если окна не создались, то DrawWindows вернет false и программа завершится
end.


Процедуры WinManagement.AddWindow() создают 2 окна.
Мне только они и нужны. Но при запуске программы создается еще одно (третье) пустое окно.
Как от него избавиться? Кто (какой модуль) его создает?

При этом я планирую пользоваться LCL (создавать всякие формы в редакторе и т.п.).

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 26.08.2013 15:26:20
SeZuka
А что за модули WinsManagement и WinsDrawing, может в них и искать ответ?

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 26.08.2013 17:13:27
ya_vanka
Нет, в них создаются те самые нужные 2 окна.

Третье окно создается независимо от них. Т.е. оно появится (промелькнет) даже если между begin и end ничего не будет.

Причем под Linux такого не происходит, только 2 нужных окна создается.

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 26.08.2013 17:26:02
Frolik
Попробуйте перед uses поставить {$AppType Gui}

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 26.08.2013 17:36:13
SeZuka
ya_vanka писал(а):Третье окно создается независимо от них. Т.е. оно появится (промелькнет) даже если между begin и end ничего не будет.

Ну тут либо Application создает окно для получения сообщений, либо в этих модулях при инициализации что-то создается.

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 27.08.2013 11:50:29
ya_vanka
Frolik писал(а):Попробуйте перед uses поставить {$AppType Gui}


Да, дело было в этом.
Спасибо!

Re: как избавиться от автоматически создаваемого окна

СообщениеДобавлено: 27.08.2013 12:34:09
Frolik
ya_vanka писал(а): Frolik писал(а):Попробуйте перед uses поставить {$AppType Gui}
Да, дело было в этом.
Спасибо!


Если оставить окно, то в него очень удобно отладочные сообщения выводить, типа
Код: Выделить всё
Writeln('Инициализация окна ввода-вывода бесполезной информации завершена на троечку!');