Как в паскале сделать отдельное окно
Перейти к содержимому

Как в паскале сделать отдельное окно

  • автор:

Подпрограммы для работы с графическим окном

Доступ к свойствам графического окна можно осуществлять как в процедурном, так и в объектно-ориентированном стиле.

Процедуры и функции для доступа к свойствам окна сгруппированы парами: если Prop — имя свойства кисти, то функция PenProp возвращает значение этого свойства, а процедура SetPenProp(p) устанавливает это свойство:

function WindowWidth: integer;
Возвращает ширину клиентской части графического окна в пикселах
function WindowHeight: integer;
Возвращает высоту клиентской части графического окна в пикселах
function WindowLeft: integer;
Возвращает отступ графического окна от левого края экрана в пикселах
function WindowTop: integer;
Возвращает отступ графического окна от верхнего края экрана в пикселах
function WindowIsFixedSize: boolean;
Возвращает True, если графическо е окно имеет фиксированный размер, и False в противном случае
procedure SetWindowWidth(w: integer);
Устанавливает ширину клиентской части графического окна в пикселах
procedure SetWindowHeight(h: integer);
Устанавливает высоту клиентской части графического окна в пикселах
procedure SetWindowLeft(l: integer);
Устанавливает отступ графического окна от левого края экрана в пикселах
procedure SetWindowTop(t: integer);
Устанавливает отступ графического окна от верхнего края экрана в пикселах
procedure SetWindowIsFixedSize(b: boolean);
Устанавливает, имеет ли графическое окно фиксированный размер
function WindowCaption: string;
Возвращает заголовок графического окна
function WindowTitle: string;
Возвращает заголовок графического окна
procedure SetWindowCaption(s: string);
Устанавливает заголовок графического окна
procedure SetWindowTitle(s: string);
Устанавливает заголовок графического окна
procedure SetWindowSize(w,h: integer);
Устанавливает размеры клиентской части графического окна в пикселах
procedure SetWindowPos(l,t: integer);
Устанавливает отступ графического окна от левого верхнего края экрана в пикселах
procedure ClearWindow;
Очищает графическое окно белым цветом
procedure ClearWindow(c: Color);
Очищает графическое окно цветом c
procedure InitWindow(Left,Top,Width,Height: integer; BackColor: Color := clWhite);
Устанавливает ширину и высоту клиентской части графического окна в пикселах
procedure SaveWindow(fname: string);
Сохраняет содержимое графического окна в файл с именем fname
procedure LoadWindow(fname: string);
Восстанавливает содержимое графического окна из файла с именем fname
procedure FillWindow(fname: string);
Заполняет содержимое графического окна обоями из файла с именем fname
procedure CloseWindow;
Закрывает графическое окно и завершает приложение
procedure CenterWindow;
Центрирует графическое окно по центру экрана
function WindowCenter: Point;
Возвращает центр графического окна
procedure MaximizeWindow;
Максимизирует графическое окно
procedure MinimizeWindow;
Сворачивает графическое окно
procedure NormalizeWindow;
Возвращает графическое окно к нормальному размеру

Кроме того, можно возвращать размеры экрана Screen, а также размеры и положение графического компонента GraphBox, на котором осуществляется рисование:

function GraphBoxWidth: integer;
Возвращает ширину графического компонента в пикселах (по умолчанию совпадает с WindowWidth)
function GraphBoxHeight: integer;
Возвращает высоту графического компонента в пикселах (по умолчанию совпадает с WindowHeight)
function GraphBoxLeft: integer;
Возвращает отступ графического компонента от левого края окна в пикселах
function GraphBoxTop: integer;
Возвращает отступ графического компонента от верхнего края окна в пикселах
function ScreenWidth: integer;
Возвращает ширину экрана в пикселях
function ScreenHeight: integer;
Возвращает высоту экрана в пикселях

Можно также изменять свойства графического окна через объект Window .

Pascal abc как открыть окно ввода? как открыть в Pascal abc окно ввода ?

Окно где можно вводить значения переменных, например readln (а) и потом ввожу в окошко ниже, значение с клавиатуры но этого окошка нет, как его можно открыть ?

Дополнен 9 лет назад

Дополнен 9 лет назад

Дополнен 9 лет назад
F9 не работает
Дополнен 9 лет назад

ctrl+F9 не работает
shift+F9 открывает командную строку в которой всё нормально работает,
но всё таки как открыть это окно в паскале ?

Лучший ответ
Shift или Ctrl + F9
Остальные ответы
окно? новый проект оконное приложение? или readln(); ?
В смысле что б было в отдельном окне было? это uses crt, или что ты имеешь ввиду?
Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Программирование в X-Window
средствами Free Pascal

Многие атрибуты окна задаются при его создании с помощью процедуры XCreateWindow() или XCreateSimpleWindow() . Впоследствии параметры можно изменить, обратившись к процедуре XChangeWindowAttributes() .

Характеристики окна описываются структурами типа TXSetWindowAttributes и TXWindowAttributes . Получить их можно с помощью процедуры XGetWindowAttributes() .

Все они делятся на две группы. В первую входят параметры, доступные «на чтение» и «на запись». Вторая группа представляет собой внутренние данные. Программа может прочитать их, но не может менять.

Сначала перечислим поля этих структур, которые относятся к «изменяемым» параметрам.

Фон окна определяется атрибутами background_pixmap и background_pixel . Первый из них задает картинку (карту пикселей), которая используется для заливки фона окна. При необходимости картина повторяется слева направо и сверху вниз. Если параметр background_pixmap равен None (задается по умолчанию), то он игнорируется. Если же при этом поле background_pixel не задано (установлено по умолчанию), то окно считается «прозрачным», в противном случае его фон заливается цветом background_pixel . Атрибуты background_pixmap и background_pixel могут также принимать значение ParentRelative . В этом случае характеристики фона заимствуются у родительского окна.

Вид края окна определяется полями border_pixmap и border_pixel . Первый атрибут определяет карту пикселей, используемую для заполнения края. Если он равен None , то край заполняется цветом border_pixel . Если же и поле border_pixel не задано, то для изображения края используются соответствующие характеристики родителя. То же самое происходит, если параметр border_pixmap равен CopyFromParent (взять у родителя). Последнее значение есть значение по умолчанию.

На перерисовку окна после изменения его размеров влияют атрибуты bit_gravity и win_gravity . Когда окно меняет размер, например, увеличивается или уменьшается, то, в принципе, нет необходимости перерисовывать все его содержимое. Часть окна остается неизменной. Правда, эта часть может поменять свое положение: переместиться вправо, влево, вверх или вниз.

  • ForgetGravity — содержимое окна перерисовывается (считается значением по умолчанию);
  • StaticGravity — остающаяся часть не должна менять положение по отношению к главному (корневому (root)) окну сервера;
  • NorthWestGravity — остающаяся часть смещается к левому верхнему углу;
  • NorthGravity — остающаяся часть смещается к верху окна;
  • NorthEastGravity — остающаяся часть смещается к правому верхнему углу;
  • WestGravity — остающаяся часть смещается к левому краю окна;
  • CenterGravity — остающаяся часть смещается к центру окна;
  • EastGravity — остающаяся часть смещается к правому краю окна;
  • SouthWestGravity — остающаяся часть смещается к левому нижнему углу;
  • SouthGravity — остающаяся часть смещается к нижнему краю окна;
  • SouthEastGravity — остающаяся часть смещается к правому нижнему углу.
  • UnmapGravity — подокна удаляются с экрана; окну посылается событие UnmapNotify , в ответ на которое оно может переместить свои подокна и показать их с помощью процедуры XMapSubWindow() ;
  • StaticGravity — подокна остаются на месте по отношению к главному (корневому) окну сервера;
  • NorthWestGravity — устанавливается по умолчанию; соответствует смещению (0, 0) ;
  • NorthGravity — смещение (H/2, 0) ;
  • NorthEastGravity — смещение (H, 0) ;
  • WestGravity — смещение (0, V/2) ;
  • CenterGravity — смещение (H/2, V/2) ;
  • EastGravity — смещение (H, V/2) ;
  • SouthWestGravity — смещение (0, V) ;
  • SouthGravity — смещение (H/2, V) ;
  • SouthEastGravity — смещение (H, V) ;
  • NotUseful (устанавливается по умолчанию) — серверу не рекомендуется сохранять содержимое окна;
  • WhenMapped — серверу рекомендуется спасти содержимое невидимых частей окна, когда окно показывается на экране;
  • Always — серверу рекомендуется сохранить содержимое окна даже, если оно не показано на экране.
  • Иногда при показе окна полезно сохранить содержимое экрана под окном . Если окно невелико, и показывается не на долго, то это позволяет экономить время, которое надо будет затратить на перерисовку экрана после того, как окно будет закрыто. Если атрибут save_under равен True , то сервер будет пытаться сохранить изображение под окном. Если же он равен False (по умолчанию), то сервер ничего не предпринимает.

    Когда обрабатывает (или не обрабатывает) событие, последнее может быть передано его родительскому окну . Атрибут do_not_propagate_mask (по умолчанию 0) говорит и о том, какие события не должны доходить до родителей.

    Изменение размеров окна и его положения на экране контролируется атрибутом override_redirect . Если он равен False , то размер окна и его положение меняются с помощью менеджера окон. Если же он равен True , то окно само решает, где ему быть, и какую ширину и высоту иметь.

    Цветовую гамму окна задает параметр colormap . Значение по умолчанию — CopyFromPatent , которое говорит, что окно использует палитру своего непосредственного родителя.

    Теперь рассмотрим «неизменяемые» параметры окна. Строго говоря, атрибуты, о которых пойдет речь, нельзя назвать неизменяемыми. Некоторые из них могут меняться сервером или менеджером окон. Но для обычных программ-клиентов они действительно являются таковыми.

    Положение окна и его размеры сообщают поля x , y , width и height . Они дают координаты левого верхнего угла, ширину и высоту окна соответственно. Координаты измеряются в пикселях по отношению к родительскому окну.

    Ширина края окна определяется параметром border_width .

    Маска, говорящая о том, какие события выбраны для передачи окну породившим его клиентом, содержится в поле флагов your_event_mask . Значение параметра образуется комбинацией флагов, идентифицирующих события.

    Информация о дисплее , на котором показано окно, содержится в структуре Visual , на которую показывает поле visual . Эти данные, как правило, не обрабатываются обычными программами-клиентами (заметим, что для получения информации о дисплее, в системе предусмотрена процедура XGetVisualInfo() ).

    Класс окна сообщает поле class . Возможные значения: InputOutput и InputOnly .

    Число цветовых плоскостей дисплея (число бит-на-пиксел) помещается в поле depth .

    На информацию об экране , на котором помещается окно, указывает поле screen . Она, как правило, не используется обычными программами.

    Идентификатор главного (корневого) окна экрана , на котором помещается окно, находится в поле root .

    Если окно имеет палитру , и она в настоящее время активна, то поле map_installed равно True , в противном случае — False .

    Видно в настоящее время окно на экране или нет, сообщает атрибут map_state .

    Маска всех событий, выбранных всеми программами для данного окна , содержится в атрибуте all_event_mask . Дело в том, что окно обрабатывается не только порождающим его клиентом, но, возможно, и другими приложениями, например, менеджером окон.

    Мы рассказали о том, как получить атрибуты окна, и что они означают. Теперь рассмотрим, как их изменить. Для этого можно использовать несколько процедур X Window, основной из которых является XChangeWindowAttributes() , имеющая следующий прототип:

    Function XChangeWindowAttributes(prDisplay : PDisplay; nWnd : TWindow; nValueMask : cardinal; prWinAttr : PXSetWindowAttributes) : longint; cdecl;external;

    Требуемые установки атрибутов передаются через аргумент prWinAttr . Он указывает на переменную типа TXSetWindowAttributes . Ее поля те же, что и соответствующие поля TXWindowAttributes . Разница заключается лишь в разных именах некоторых из них. Так, поле your_event_mask в TXWindowAttributes соответствует полю event_mask в TXSetWindowAttributes .

    Структура TXSetWindowAttributes содержит дополнительное поле cursor . Оно определяет вид курсора мыши , когда последний находится в окне. Если поле равно None (значение по умолчанию), то используется курсор родительского окна, в противном случае значением параметра должен быть идентификатор того или иного курсора.

    Параметр nValueMask при вызове указанной процедуры представляет комбинацию флагов, говорящих о том, какие из полей переменной prWinAttr принимать во внимание.

    В следующем примере приведен фрагмент кода, в котором изменяются параметры border_pixmap и win_gravity некоторого окна:

    . var prDisplay : PDisplay; prWnd : TWindow; rWndAttr : TXSetWindowAttributes; nValMask : cardinal; const nPixmap : TPixmap =0; . nValMask := CWBorderPixmap or CWWinGravity; rWndAttr.border_pixmap := nPixmap; rWndAttr.win_gravity := StaticGravity; . XChangeWindowAttributes (prDisplay, prWnd, nValMask, @rWndAttr); .

    1.1.3 Управление окнами

    Окна могут располагаться на экране произвольным образом, перекрывая друг друга. X имеет набор средств, пользуясь которыми программа-клиент может изменять размеры окон и их положение на экране. Особенностью системы является то, что она не имеет встроенной возможности управлять окнами с помощью клавиатуры или мыши. Чтобы это можно было осуществить, нужен специальный клиент, который называется менеджер окон (Window manager). Стандартный дистрибутив X содержит такую программу — twm. Возможности этого менеджера ограничены, но, тем не менее, он позволяет осуществлять базовые действия: передвигать окна с помощью мыши, изменять их размер и т.д. Более развитым оконным менеджером является, по всей видимости, программа mwm (Motif Window Manager), которая поставляется в рамках системы OpenMotif.

    Но менеджер не может корректно управлять окнами, ничего о них не зная. В одних случаях удобно иметь заголовки окон, в других случаях окно не может быть сделано меньше определенных размеров, а в некоторых окно не может быть слишком увеличено. Окно может быть минимизировано (превращено в пиктограмму), в этом случае менеджер должен знать имя и вид пиктограммы. Для того, чтобы сообщить менеджеру свои пожелания относительно окон, клиенты могут использовать два способа. Во-первых, при создании окна X могут быть переданы рекомендации (hints) о начальном положении окна, его ширине и высоте, минимальных и максимальных размерах и т.д. Во-вторых, можно использовать встроенный в X способ общения между программами — механизм свойств.

    Читайте также

    Работа с окнами

    Работа с окнами Давайте поподробнее остановимся на некоторых моментах использования свойств и методов окон.Прежде всего, требуется дополнительное рассмотрение метода open. Он позволяет Web-дизайнеру открыть на экране дополнительное окно Web-обозревателя и поместить в него

    Действия над окнами

    Действия над окнами Рассмотрим команды окна. Наведите указатель мыши на область заголовка окна и щелкните правой кнопкой. Появится контекстное меню (рис. 3.4), содержащее пункты Восстановить, Переместить, Размер, Свернуть, Развернуть и Закрыть. Если выбрать пункт

    Управление окнами

    Управление окнами В предыдущем разделе очерка речь шла о способах запуска приложений, в этом же поговорим о способах управления приложениями, которые уже запущены. Поскольку мы (пока ещё) живём в системе, которая официально называется X Window System, то большая часть

    Управление окнами

    Управление окнами Если ваш монитор не отличается гигантскими размерами экрана, приготовьтесь потратить довольно много времени на перемещение окон редактора Visual Basic. Эти окна существуют не столько для того, чтобы на них смотреть, сколько для того, чтобы оказать

    Управление окнами

    Управление окнами В Word 2007 кнопка закрытия документа совпадает с кнопкой закрытия окна программы (рис. 2.38). Если открыто несколько документов, то при закрытии одного из них, остальные остаются открытыми. При закрытии последнего документа с помощью этой кнопки окно

    Работа с окнами

    Работа с окнами Перетаскивание окнаПри перетаскивании окна с помощью мыши может отображаться либо его содержимое, либо только контур. Если параметру DragFullWindows, который расположен в разделе реестра HKEY_CURRENT_USERControl PanelDesktop, присвоить значение 1, то при перетаскивании окна с

    Что можно делать с окнами

    Что можно делать с окнами Рабочий стол, значки, окна и диалоги — основа Windows. Большинство запущенных вами программ выводят на Рабочий стол свои окна. Вы можете перемещать их по экрану, изменять размер, развертывать на весь экран или сворачивать в значок на Панели задач. С

    Как переключаться между окнами?

    Как переключаться между окнами? Компьютер способен одновременно выполнять несколько приложений. Каждое из них выводит на экран свое окно. Значки этих окон отображаются на Панели задач.Чтобы переключаться между запущенными программами, вы можете щелкать мышью на их

    6.3. Работа с окнами

    6.3. Работа с окнами Нажмите кнопку Пуск и выберите команду меню Мой компьютер. Далее мы будем, как и договаривались ранее, данное действие записывать более кратко: Пуск, Мой компьютер. Рассмотрим заголовок окна (рис. 38). Сначала отображается пиктограмма окна, двойной щелчок

    1.4. Расширенное управление окнами

    1.4. Расширенное управление окнами В предыдущих версиях Windows управление окнами было не очень удобным. В Windows 7 появился ряд клавиатурных комбинаций, существенно упрощающих работу с окнами. Все эти комбинации клавиш мы рассмотрим в главе

    3.5. Работа с окнами

    3.5. Работа с окнами Наверное, вы уже догадались, что мы не будем сейчас говорить, о том, как свернуть, развернуть или закрыть окно. Надеюсь, это умеют делать все читатели данной книги. Вместо этого мы рассмотрим ряд клавиатурных комбинаций по работе с окнами, которые

    2.2.1. Переключение между окнами

    2.2.1. Переключение между окнами Windows является многозадачной операционной системой. То есть вы можете работать одновременно в нескольких программах и переключаться между ними. Объясняю, как это делается. Итак, сейчас у вас открыто окно Мой компьютер, сверните его на панель

    Управление окнами и панелями Flash

    Управление окнами и панелями Flash Как мы выяснили, Flash может вывести на экран сразу множество разнообразнейших окон. Как разобраться во всем этом многообразии?Если в одной программе Flash открыто несколько документов, то переключаться между ними можно, щелкая мышью на

    Работа с окнами

    Работа с окнами В среде Windows пользователь постоянно работает с окнами, так как в них открываются программы, документы или другие объекты. Окна различных программ и документов имеют одинаковые элементы управления, что значительно упрощает работу с ними.Рассмотрим для

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *