Учебник по Delphi 4.0

Тут можно читать онлайн Учебник по Delphi 4.0 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Учебник по Delphi 4.0 краткое содержание

Учебник по Delphi 4.0 - описание и краткое содержание, автор Неизвестный Автор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Учебник по Delphi 4.0 - читать онлайн бесплатно полную версию (весь текст целиком)

Учебник по Delphi 4.0 - читать книгу онлайн бесплатно, автор Неизвестный Автор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Третья строка выполняет преобразование типа и вызывает метод Clear компонента memDailyNotes.

MDIChildren и MDIChildCount

Свойство MDIChildren является массивом объектов TForm, предоставляющих доступ к созданным дочерним формам. MDIChildCount возвращает количество элементов в массиве MDIChildren.

Обычно это свойство используется при выполнении какого-либо действия над всеми открытыми дочерними формами. Вот код сворачивания всех дочерних форм командой Minimize All.

procedure TFormI.mnuMinimizeAllClick(Sender: TObject);

var

iCount: Integers;

begin

for iCount:= MDIChildCount-1 downto 0 do

MDIChildren[iCount].WindowState:= wsMinimized;

end;

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

TileMode

Это — свойство перечислимого типа, определяющее, как родительская форма размещает дочерние при вызове метода Tile. Используются значения tbHorizontal (по умолчанию) и tbVertical для размещения форм по горизонтали и вертикали.

WindowMenu

Профессиональные MDI-приложения позволяют активизировать необходимое дочернее окно, выбрав его из списка в меню. Свойство WindowMenu определяет объект TMenuItem, который Delphi будет использовать для вывода списка доступных дочерних форм.

Для вывода списка TMenuItem должно быть меню верхнего уровня. Это меню имеет свойство Caption, равное swindow.

MDI-события TForm

В MDI-приложении событие OnActivate запускается только при переключении между дочерними формами. Если фокус ввода передается из не MDI-формы в MDI-форму, генерируется событие OnActivate родительской формы, хотя ее свойство Active никогда и не устанавливается равным True. Эта странность на самом деле строго логична: ведь, если бы OnActivate генерировался только для дочерних форм, не было бы никакой возможности узнать о переходе фокуса ввода от другого приложения.

MDI-методы TForm

Специфичные для MDI-форм методы перечислены ниже.

Arrangelcons выстраивает пиктограммы минимизированных дочерних форм в нижней части родительской формы.

Cascade располагает дочерние формы каскадом, так что видны все их заголовки.

Next и Previous переходит от одной дочерней формы к другой, как будто вы нажали или .

Tile выстраивает дочерние формы так, что они не перекрываются.

Пример MDI-приложения

В этом разделе мы расширим возможности созданной ранее программы просмотра изображений.

Создание интерфейса

Интерфейс MDI-приложения очень похож на интерфейс разработанного ранее SDI-приложения, но каждое изображение выводится в отдельной, а не в главной форме. Выполните следующие действия для создания родительской формы.

1. Выберите команду File/New Application, и появится пустое приложение.

2. Установите следующие свойства.

Свойство Значение

Caption Image Viewer

FormStyle fsMDIForm

Name frmMDIParent ShowHint True

3. Поместите компонент TPanel в форму. Установите следующие его свойства.

Свойство Значение

Align alTop

Caption –

4. Поместите три компонента TSpeedButton в TPanel и назовите их spbtnLoad, spbtnStretch и spbtnCenter. Установите следующие их свойства.

Свойство Значение

spbtnLoad.Hint Load

spbtnLoad.Left 8

spbtnLoad.Top 8

spbtnStretch.AllowAlIUp True

spbtnStretch.Grouplndex 1

spbtnStretch.Hint Stretch

spbtnStretch.Left 48

spbtnStretch.Top 8

spbtnCenter.AllowAlIUp True

spbtnCenter.Grouplndex 2

spbtnCenter.Hint Center

spbtnCenter.Left 80

spbtnCenter.Top 8

Свойства Glyph установите те же, что и для SDI-приложения.

5. Добавьте в форму компонент TOpenDialog и установите следующие его свойства.

Свойство Значение

Filter Bitmaps (*.bmp)]*.bmp

Name opndlgLoad

Options [ofPathMustExist,ofFileMustExist]

Теперь создадим дочернюю форму.

1. Выберите из меню File/New Form, и появится пустая форма.

2. Установите следующие ее свойства.

Свойство Значение

FormStyle fsMDIChild

Name frmMDIChild

Position poDefaultPosOnly

3. Поместите компонент TImage во вновь созданную форму и установите его следующие свойства.

Свойство Значение

Align alClient

Name imgMain

Удалите дочернюю форму из списка автоматически создаваемых форм следующим образом.

1. Выберите команду Project/ Options, и появится диалоговое окно Project Options, показанное на рис. 1.14.

2. Выберите frmMDIChild в списке Auto-create forms.

3. Щелкните на кнопке. Форма frmMDIChild при этом будет перенесена в список Available forms.

4. Щелкните на кнопке ОК.

Теперь самое время сохранить проект, выбрав команду File/Save Project As. Сохраните Unit1 как MDIParent, а проект — как EgMDIApp.

Написание кода

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

Сначала загрузим изображение. Введите следующий код в обработчик события OnClick компонента spbtnLoad.

procedure TfrmMDIParent.spbtnLoadClick(Sender: TObject);

begin

if opndlgLoad.Execute then

with TfrmMDIChild.Create(Application) do

begin

Caption:= opndlgLoad.FileName;

imgMain.Picture.LoadFromFile(opndlgLoad.FileName);

ClientWidth:= imgMain.Picture.Width;

ClientHeight:= imgMain.Picture.Height;

end;

end;

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

Еще пара штрихов — и приложение заработает, как и предусматривалось. Поскольку модуль ссылается на тип TfrmMDIChild, находящийся в модуле MDIChild, после строки implementation следует добавить еще одну строку:

uses MDIChild;

Теперь можно приступить к компиляции и запуску приложения. Однако заметьте, что, когда вы щелкаете на кнопке Close, дочерняя форма не закрывается, а сворачивается в пиктограмму. Чтобы заставить ее закрыться, следует добавить в код обработчика OnClose класса TfrmMDIChild маленькую деталь — изменить свойство Action:

Action:= caFree;

Компоненты TSpeedButton Stretch и Center выполняют те же функции, что и в SDI-приложении, однако их обработчики события OnClick следует изменить следующим образом

if not (ActiveMDIChild = Nil) then

if ActiveMDIChild 15 TfrmMDIChild then

TfrmMDIChild(ActiveMDIChild). imgMain.Stretch:= spbthStretch.Down;

и

if not (ActiveMDIChild = Nil) then

if ActiveMDIChild is TfrmMDIChild then

TfrmMDIChild(ActiveMDIChild). imgMain.Center:= spbthCenter.Down;

Остается последняя проблема — состояния кнопок Stretch и Center одинаковы для всех дочерних форм Для решения этой задачи добавьте в обработчик события OnActivate класса TfrmMDIChild строки.

frmMDIParent.spbtnStretch.Down:= imgMain.Stretch;

frmMDIParent.spbtnCenter.Down:= imgMain.Center;

И, наконец, самый последний из последних штрихов — в модуле MDIChild добавьте после строки implementation строку.

uses MDIParent;

Компилируйте, запускайте и смотрите. MDI-приложение создано!

ПРЕДОСТЕРЕЖЕНИЕ:В этом примере присвоение нового значения свойству down класса TSpeedButton вызывало событие Оn-click. Будьте осторожны при написании кода обработчика события, который генерирует новое событие путем присвоения значения свойству, ведь при этом можно создать бесконечную рекурсию.

Создание консольного приложения

А теперь забудьте обо всех этих кнопочках, пиктограммах и пропахших мышами приложениях — настоящие программисты и пользователи обожают текстовый режим! Если же говорить серьезно, иногда программы в текстовом режиме могут быть полезными. Примерам таких программ несть числа, и основная проблема всегда заключалась в том, что они запускались в окне DOS и не имели доступа к Windows API или к таким ресурсам, как принтеры и память (не говоря уже о том, что это были 16-разрядные приложения с 640-килобайтовым ограничением на используемую память). Теперь, когда Delphi поддерживает создание консольных приложений, можно создавать 32-разрядные текстовые приложения с использованием линейной модели памяти и с возможностью работать с Windows API и применять ресурсы

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Неизвестный Автор читать все книги автора по порядку

Неизвестный Автор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Учебник по Delphi 4.0 отзывы


Отзывы читателей о книге Учебник по Delphi 4.0, автор: Неизвестный Автор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x