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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Ответить
ya_vanka
новенький
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

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

Сообщение 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 (создавать всякие формы в редакторе и т.п.).
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

А что за модули WinsManagement и WinsDrawing, может в них и искать ответ?
ya_vanka
новенький
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

Сообщение ya_vanka »

Нет, в них создаются те самые нужные 2 окна.

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

Причем под Linux такого не происходит, только 2 нужных окна создается.
Frolik
постоялец
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Сообщение Frolik »

Попробуйте перед uses поставить {$AppType Gui}
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

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

Ну тут либо Application создает окно для получения сообщений, либо в этих модулях при инициализации что-то создается.
ya_vanka
новенький
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

Сообщение ya_vanka »

Frolik писал(а):Попробуйте перед uses поставить {$AppType Gui}


Да, дело было в этом.
Спасибо!
Frolik
постоялец
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

Сообщение Frolik »

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


Если оставить окно, то в него очень удобно отладочные сообщения выводить, типа

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

Writeln('Инициализация окна ввода-вывода бесполезной информации завершена на троечку!');
Ответить