Как сделать приложение активным delphi

Добавил пользователь Alex
Обновлено: 10.09.2024

В Windows основной элемент пользовательского интерфейса - форма. В Delphi каждый проект имеет по крайней мере одно окно - главное окно приложения. Все окна в Delphi основаны на объекте TForm. В данной статье мы рассмотрим основные события учавствующие в "жизни формы".

Как сделать, чтобы форма закрывалась при нажатии Esc?

Для начала необходимо установить свойство формы KeyPreview в True. А потом уже можно отлавливать "Esc":

procedure TForm1.FormCreate(Sender: TObject);

(Sender: TObject; var Key: Char);

Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Просто замените конструктор Create класса Вашей формы.

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

TForm2 = class (TForm)

constructor CreateWithCaption(aOwner: TComponent; aCaption: string );

constructor TForm2.CreateWithCaption(aOwner: TComponent; aCaption: string );

procedure TForm1.Button1Click(Sender: TObject);

Unit2.Form2 := Unit2.TForm2.CreateWithCaption(Application, 'My Caption' );

Как создать и вызвать модальную форму?

В каком порядке происходят события при создании и показе окна?

При создании окна обработчики событий выполняются в следующем порядке:

Copyright © 1996 Epsylon Technologies

Взято из FAQ Epsylon Technologies

Как использовать форму из DLL

Unit1 in 'Unit1.pas' ;

Необходимо, чтобы дочерняя форма не активизировала родительское окно

Сделайте родительским окном рабочий стол.

procedure TForm2.CreateParams( VAR Params: TCreateParams);

Можно ли динамически менять какая форма считается главной в приложении во время работы программы?

Можно, но только во время загрузки приложения. Чтобы сделать это выберите "View->Project Source" и измените код инициализации приложения, так что порядок создания форм зависил от какого-то условия.

Примечание: Вам придется редактировать этот код, если Вы добавите в приложение новые формы.

Условие создания главной формы

Существует ли в Delphi возможность создавать главную форму по условию? Я хочу использовать условие IF (в зависимости от передаваемого параметра) для того, чтобы определить какая форма будет главной при старте приложения. Фактически "другую" форму НЕ нужно будет загружать.

Хитрость здесь заключается в том, что мы предоставляем компилятору весь необходимый для создания форм код, но не допускаем его выполнения (IF FALSE THEN), при этом компилятор не ругается, а мы тем временем (во время выполнения приложения) выбираем и создаем главную форму. Вот пример кода, измененный .DPR-файл, который при старте случайным образом выбирает из друх форм главную:

Как сделать окно системно-модальным?

Используйте функцию Windows API SetSysModalWindow(). Код ниже демонстрирует технологию работы с этой функцией. В любой момент времени может быть возможен только один модально-системны диалог, чей дескриптор возвращается функцией SetSysModalWindow(). Вам необходимо запомнить возвращаемую функцией величину для того, чтобы завершить показ диалога таким образом. Вот как примерно это должно выглядеть:

Часть урока для новичков

Перед непосредственным написанием программ необходимо усвоить правилами работы над разрабатываемым проектом.

Проект Delphi

Главный файл проекта, изначально называется PROJECT1.DPR. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As: При задании имени следует придерживаться правил задания имен в Object Pascal. Имя не должно содержать пробелов (используйте в таком случае знак подчеркивания), должно начинаться с буквы (цифры допустимы, но со второй позиции), не должно содержать других символов, кроме букв и цифр. Под каким именем вы сохраняете проект, под таким именем и будет создаваться исполняемый EXE файл, который вы всегда сможете самостоятельно переименовать.

Модуль программы, который автоматически появляется в начале работы Unit1. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню File команду Save As: Сохраняется активный модуль в редакторе кода.

Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде формы (окна разрабатываемого приложения). При переименовании названия модуля автоматически меняет свое название.

Файл PROJECT1.RES изначально содержит иконку для проекта. Создается автоматически. Имеет одноименное название с названием проекта.

Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства. Состояние окон во время разработки приложения.

Исполняемый EXE файл, который создается в процессе компиляции проекта.

Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES и DSK.

После компиляции программы получаются файлы с расширениями:

DCU - скомпилированные модули PAS для последующей быстрой компиляции некоторые файлы не перезаписываются

EXE - исполняемый файл

~PA, ~DP - backup файлы редактора. Автоматически создаются и содержат информацию, перед последним сохранением.

Коротко про пункты главного меню Delphi

Пункт меню "File"

Первая секция дает возможность управления проектом в целом. Создать новый: (проект, форму, модуль, отчет и т.д.). Создать новый проект. Создать новую форму (окно).

Вторая секция позволяет открывать с диска файлы проекта.

Третья позволяет сохранять открытые файлы на диске. Здесь можно закрыть активный файл в редакторе кода или закрыть весь проект.

Четвертая позволяет подключать в текущий модуль другие в открытом проекте.

Пятая управляет печатью.

Шестая секция - выход из Delphi.

Каждая строка пункта меню "File", как и другого пункта, объяснена в справке. Выберите меню "File", подведите под интересующий вас пункт и нажмите F1.

Большинство из пунктов первой секции очевидны. "New Application" начинает новый проект, "Open Project" открывает существующий проект и т.д. Вложенный список "Reopen" позволяет открыть файл или проект, который недавно открывался.

При создании нового модуля Delphi дает ему имя по-умолчанию. Вы можете изменить это имя на что-нибудь более предпочтительное, чтобы название подходило к функциональным принадлежностям данного модуля (например, MAIN.PAS) с помощью пункта для первого сохранения "Save" или для последующего изменения названия "Save As:".

"Save File" сохраняет только редактируемый файл, но не весь проект. Для сохранения всех файлов проекта пользуйтесь "Save All". Вообще всегда удобнее пользоваться пунктом меню сохранить все, чем сохранять файлы по отдельности, тем более, что сохраняются только измененные.

"Close" закрывает файл из окна редактора. Если файл был изменен произойдет запрос сохранений перед закрытием.

"Close All" закрывает все открытые файлы проекта.

Пункт меню "Edit"

"Edit" содержит команды "Undo" и "Redo", которые могут быть очень полезны при работе в редакторе для устранения последствий при неправильных действиях, например, если случайно удален нужный фрагмент текста или удален компонент из проектировшика форм.

Команды "Cut", "Copy", "Paste" и "Delete" - как во всех остальных приложениях Windows, но их можно применять не только к тексту, но и к визуальным компонентам. Например, если необходимо размножить необходимый компонент на форме. Принцип действия первой и второй секции человеку, работающему в Windows, думаю ясен. Третья секция предназначена для работы с редактором формы. Не буду полность описывать ее содержание. Расскажу только о некоторых. "Bring to Front" - установить выбранный компонент на уровень выше; "Send to Back" - компонент на уровень ниже; "Align. " - выравнивание компонентов, совместное позиционирование; "Size" - точные размеры компонента; "Tab Order" - порядок перехода по элементам формы с помощью кнопки Tab.

Сохранение проекта

Как известно, чтобы в последствии открывать свой проект для дальнейшего корректирования и управления необходимо его сохранить на диске.

Первый шаг - создать поддиректорию для программы. Лучше всего создать директорию, где будут храниться все ваши программы и в ней - создать поддиректорию для данной конкретной программы. Например, вы можете создать директорию LESSONS и внутри нее директории, связанные с тем или иным уроком LES4, которые содержали бы программы, над которыми мы работали.

После создания поддиректории Bя хранения вашей программы желательно выбрать пункт меню "File" "Save All". Сохранить нужно будет два файла. Первый - модуль (unit), над которым Вы работали, второй - главный файл проекта. Здесь и далее сколько окон (форм) в вашем проекте, столько и модулей.

Открытие проекта

Для открытия проекта необходимо выбрать пункт меню файл "Open Project" и выбрать название интересующего вас проекта DPR. При этом открываются как сам проект, так и становятся доступными все привязанные к нему файлы.

Если вы хотите открыть для редактирования отдельный модуль, или модуль формы, необходимо выбрать пункт "Open" и выбрать файл PAS. В этом режиме будет доступно для редактирования только форма и модуль. Чтобы запустить это окно на выполнение сначала открывайте проект.

Часть урока для продвинутых программистов

Запуск других приложений из вашего

Существует две наиболее часто применяемых функций. WinExec и ShellExecute.

Функция WinExec

WinExec, оставлена для совместимости с ранними версиями Windows, но я рекомендую для обычного запуска программы с командной строкой использовать эту. У нее мало параметров запуска.

Используемый модуль - Windows.

Описание: WinExec (FileName: PChar; CmdShow: Cardinal) : Cardinal;

где: FileName - путь, имя запускаемого приложения, параметры командной строки. Все указывается в одной строке;

CmdShow - стиль окна. Показывает, в каком состоянии будет отображаться окно при запуске.

Параметры отображения окна CmdShow:

Для не-Windows приложений определяет состояние окна файл PIF, если таковой имеется в наличии. Если необходимо закрывать окно после завершения работы такого приложения необходимо создать PIF ярлык к нему в том же каталоге с таким же названием и поставить галочку "Закрывать окно по завершению сеанса работы". Все дополнительные параметры запуска устанавливаются там же.

Возвращаемые значения функции WinExec:

Если имя выполняемого файла в параметре FileName не содержит пути директории, Windows производит поиск выполняемого файла в такой последовательности:

1. Каталог из которого приложение было запущено. Это рабочий каталог
2. Системный каталог Windows (обычно C:\WINDOWS\SYSTEM).
3. Каталог Windows.
4. Директории, указанные в переменной операционной среды в среде PATH. Узнать о каталогах этой переменной можно, введя PATH в командной строке сеанса MS-DOS.

Пример использования функции WinExec в программе:


Функция ShellExecute

Функция ShellExecute не только запускает программы, а открывает, редактирует или печатает файл, с учетом зарегестрированного типа, а также открывает указанную папку проводником. Возвращает Handle ссылку на открытое окно.

Используемый модуль ShellAPI. Его нужно не забыть указать в разделе Uses.

Описание: ShellExecute (hWnd: HWND; Operation: PChar; FileName: PChar; Parametrs: PChar; Directory: PChar; CmdShow: Integer): HINST;

Operation - производимая операция. Open - открыть, print - напечатать, explore - открыть папку. По умолчанию open, если указать nil.

FileName - имя файла или документа, интернет ссылка, e-mail адрес.

Parametrs - параметры, передаваемые приложению в командной строке.

Directory - каталог по умолчанию.

CmdShow - стиль окна. Показывает, в каком состоянии будет отображаться окно при запуске. Подробно рассказано выше.

Вместо параметров Operation, Parametrs и Directory можно ставить nil. Они являются не обязательными параметрами для запуска.

В случае успешного запуска возвращает Handle окна, в случае неудачи возвращает код ошибки меньше или равное 32. Список возможных ошибок можно прочитать в справке по этой команде.

Пример использования команды ShellExecute в программе:

ShellExecute (Form1.Handle, nil, PChar (Application.ExeName), nil, nil, SW_RESTORE); //запуск второй копии этой программы

ShellExecute (Form1.Handle, nil, 'c:\1.doc', nil, nil, SW_RESTORE); //открыть документ

Здравствуй уважаемый новичок! В этом уроке мы познакомимся с Delphi 7 и научимся компилировать программу.
Итак, если вы приняли решение изучать язык программирования Delphi, то сразу без предисловий перейдем к делу.
Программа Delphi 7 состоит из четырех основных окон:

Главное окно(Рис 1)

Главное окно (Рис 1).

Инспектор объектов(Рис 2)

Инспектор объектов (Рис 2).
Окно Form(Рис 3)

Окно Form (Рис 3).

Окно программы(Рис 4)

Редактор кода (Рис 4).

Главное окно – окно управления проектом и средой разработки. Здесь же находятся вкладки с компонентами (Рис 1).
Инспектор объектов – окно, в котором задаются свойства различным компонентам (Рис 2).
Окно Form – визуальное окно программы. (Рис 3)
Редактор кода – окно, в которое мы будем записывать код (Рис 4).

Run

Давайте уже напишем нашу первую программу!
Нажмите на зеленый треугольник в главном окне.
После нажатия на зеленый треугольник, наша программа начнет компилироваться (создаваться), то есть компилятор проверит окно редактора кода на наличие ошибок, но так как мы в окно редактора кода еще ничего не писали, то ошибок возникнуть не должно. После компиляции, Delphi запустит нашу программу для тестирования.
Вот что мы увидим:

Окно программы

Теперь закройте скомпилированную программу и мы продолжаем знакомство с Delphi. В главном окне можно увидеть палитру компонентов. На рисунке она обведена красным прямоугольником.

Палитра компонентов

Между компонентами можно переключаться, щелкая по вкладкам. Каждая вкладка имеет свои уникальные компоненты. Так же, если у вас не помещаются все вкладки в палитру компонентов, то появляются так называемые ушки, для перелистывания вкладок в ту или иную сторону. На вкладке Standard самым первым стоит значок курсора (к нему проведена зеленая линия), это не компонент. Он нужен для отмены выбора компонента. Вот например, вы выбрали какой-то компонент и для того, чтобы отменить свой выбор, нужно просто щелкнуть по этому значку курсора. Существуют не только стандартные компоненты Delphi, но и создаваемые любителями. О том как устанавливать компоненты мы поговорим в следующих уроках.

А теперь добавим на форму компонент под названием Button (кнопка). Он находится в на вкладке Standard. Нажмите на него, а потом нажмите где-нибудь на форме.
Получится вот так:

Button

Готово! Кнопка на форме! Перейдем в инспектор объектов.
На вкладке Properties отображены все свойства компонента, в данном случае свойства нашей кнопки.
На вкладке Events отображены все события компонента, в данном случае опять же свойства нашей кнопки.
Изменим свойство Caption (заголовок). Вместо Button1 напишем Выход:

Caption

Вы можете поэкспериментировать с другими свойствами, изменяя их значения. Например попробуйте изменить свойства Width и height (ширина и высота), left и top (расстояние слева и сверху внутри формы), Cursor (выберите любой курсор из списка и после компиляции при наведении на кнопку будет отображаться выбранный вами курсор).

Маленько отвлеклись от курса. Продолжаем. На форме изменилось название кнопки. Теперь перейдем на вкладку Events и кликнем 2 раза напротив надписи OnClick:

Events

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

Cod

Кликая 2 раза по событию OnClick, мы вставили процедуру, такую некую заготовку. Думаю, по названию кнопки вы догадались, что при нажатии на нее программа закроется. Нам надо осуществить это действие. Пишем команду close между ключевыми словами begin и end. Все команды в Delphi заканчиваются точкой с запятой, по этому между ключевыми словами должен быть код close; Вообще в Delphi, все команды пишутся между ключевыми словами begin и end, то есть начинаем и заканчиваем.

После всех манипуляций получилось вот такое чудо: Компилируем нашу программу, нажимая на зеленый треугольник или на клавишу F9. Кстати, для того, чтобы просто скомпилировать программу и проверить код на ошибки, не запуская программу потом для тестирования, нужно нажать Ctrl + F9.

По умолчанию программа компилируется в папке C:\Program Files\Borland\Delphi7\Projects. Давайте сохраним проект в другую папку. Нажимаем в меню главного окна File->Save Project As… и выбираем папку для сохранения. Сейчас в папке находится только проект, для того чтобы там появился exe-файл, нужно еще раз скомпилировать программу.

Теперь давайте закроем наш проект, а потом снова откроем. Нажимаем в главном окне File->Close All, если вы не сохранили проект или после сохранения где-то его изменили, то у вас вылезет окно с запросом на сохранение проекта, нажмите на кнопку Save и сохраните проект.

Сохранение

Далее в главном окне нажимаем File->Open Project. и открываем проект. У меня проект называется Project1.dpr, если вы при сохранении изменяли название, то соответственно открывайте то, что сохранили :)
Что бы создать новый проект, нажмите File->New->Application.

Менеджер проектов Delphi

Откройте в Delphi проект из нашего прошлого урока, или создайте новый проект. Как это делается вы должны помнить, но если кто-то забыл, то я напомню File — New — VCL Forms Application – Delphi.

Видео по теме

Давайте подробно рассмотрим каждый пункт менеджера проектов

Если в вашем проекте будет несколько приложений, то только одно из них может быть активным. И только активное приложение мы можем выполнять и отлаживать в среде разработки. Имя активного приложения выделяется жирным шрифтом. Чтобы изменить активное приложение, достаточно дважды кликнуть по его имени левой кнопкой мыши. Также можно вызвать контекстное меню, кликнув по имени приложения правой кнопкой мыши и затем выбрать Activate (Активировать).

Но пока давайте будем работать только с одним приложением. Поэтому если вы создали второе приложение, то его можно удалить. Для этого выделяем имя второго приложения и нажимаем клавишу Del, или Delete (у кого какая клавиатура). В появившемся окне о подтверждении удаления нужно выбрать Yes (Да) и приложение будет удалено из группы проектов.

Но реально из диска файлы не удаляются. Они остаются на месте. Просто не отображаются в проекте. Поэтому если они вам вообще не нужны, то нужно их найти и удалить. Это если вы сохраняли проект, после того как добавили в него второе приложение. Если же вы не сохраняли проект, то соответственно файлы второго приложения и не создавались.

Теперь давайте перейдем в папку с нашим проектом и посмотрим на файлы присутствующие в ней.

  • в файлах с расширением dproj содержится конфигурация нашего проекта;
  • в файлах с расширением dpr находится сам проект;
  • в файлах с расширением res содержатся ресурсы нашего проекта: кнопки, иконки, курсоры и т.д.;
  • в файлах с расширением pas содержится исходный код модулей;
  • в файлы с расширением dfm содержится визуальная информация о форме.
  • в папке Win находится папка Debug, а в ней — файлы с расширением dcu и exe.

Файл с расширением dcu — это откомпилированный модуль проекта в промежуточном формате. Когда происходит компиляция программы, то все модули компилируются в файлы формата DCU, а потом они собираются в один файл. Если модуль не изменился с последней компиляции, то Delphi пропустит его и при сборке будет использовать уже существующий файл DCU. Так увеличивается скорость компиляции.

Ну и файл с расширением exe — это наша программа, исполняемый файл того приложения, которое мы скомпилировали в Delphi.

Файлы с расширением dfm, pas, dpr и dproj можно открыть обычным блокнотом и внести в них нужные изменения. Но это делается только в том случае если по какой-то причине эти файлы не открываются в IDE Delphi.

Вы можете заметить, что когда открываете уже существующий проект в Delphi, то можно открыть файл dpr, а можно открыть и dproj. И эффект будет одинаковым. В чем же разница?

Как я уже упоминал, файл dpr содержит исходный код Delphi (это самый важный файл), а файл dproj содержит конфигурацию проекта.

Открывая один из них, интегрированная среда разработки автоматически ищет другой.

Попробуйте удалить файл dproj и открыть (оставшийся) файл dpr — IDE Delphi сообщит вам, что будет сгенерирован новый файл dproj.

А вот файл dpr ни в коем случае не удаляйте!

Надеюсь, этот урок стал для вас полезным, и вы подпишитесь на мой канал. Также буду очень благодарным за ваши лайки и оставленные комментарии под этим видео. Канал D-Nik Webmaster.

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