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

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

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

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

Сообщение ya_vanka » 26.08.2013 12:59:40

День добрый.

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

Код: Выделить всё
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 (создавать всякие формы в редакторе и т.п.).
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

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

Сообщение SeZuka » 26.08.2013 15:26:20

А что за модули WinsManagement и WinsDrawing, может в них и искать ответ?
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

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

Сообщение ya_vanka » 26.08.2013 17:13:27

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

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

Причем под Linux такого не происходит, только 2 нужных окна создается.
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

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

Сообщение Frolik » 26.08.2013 17:26:02

Попробуйте перед uses поставить {$AppType Gui}
Frolik
постоялец
 
Сообщения: 275
Зарегистрирован: 18.08.2011 11:52:32

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

Сообщение SeZuka » 26.08.2013 17:36:13

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

Ну тут либо Application создает окно для получения сообщений, либо в этих модулях при инициализации что-то создается.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

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

Сообщение ya_vanka » 27.08.2013 11:50:29

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


Да, дело было в этом.
Спасибо!
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

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

Сообщение Frolik » 27.08.2013 12:34:09

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


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


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru