Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Компонент TStatusBar (строка состояний)




Компонент TStatusBar (строка состояний)

Компонент StatusBar предназначен для создания строки состояния, которая располагается в нижней части основной формы. Компонент может иметь несколько панелей (секций). Добавляется компонент с помощью кнопки на вкладке (Win32) панели инструментов. С компонентом связывается Компонент класса TStatusPanels, который определяет панели компонента. Некоторые свойства класса TStatusPanels приведены в табл. 19.1.

Таблица 19.1. Свойства TStatusPanel

Свойство Описание
Alignment Выравнивание текста относительно границ панели: taLeftJustify – выравнивание влево; taCenter – центрирование по горизонтали; taRightJustify – выравнивание вправо
Bevel Стиль рамки панели: pbNone – нет рамки; pbLowered – вдавленная рамка; pbRaised – выпуклая рамка
Style Способ формирования изображения панели: psText – панель содержит только текст и прорисовывается автоматически; psOwnerDraw – панель прорисовывается программой
Text Надпись панели
Width Ширина панели в пикселях

 

Свойства компонента TStatusBar приведены в табл. 19.2.

Таблица 19.2. Свойства TStatusBar

Свойство Описание
Canvas Канва для прорисовки панелей
Panels Компоненты панели. Свойство TStatusPanels. Items[Index:integer] открывает доступ к панели по ее индексу
SimplePanel Запрещение/разрешение создания нескольких панелей. Если содержит значение True, компонент имеет единственную панель
SimpleText Текст панели для SimplePanel=True
SizeGrip Запрещение/разрешение размещения кнопки изменения размеров окна. Игнорируется, если Align<>alBottom

 

События компонента TStatusBar приведены в табл. 19.3.

Таблица 19.3. События TStatusBar

События Описание
TDrawPanelEvent Возникает при необходимости прорисовки панели Panel, если ее свойство Style определено как psOwnerDraw: Rect – прямоугольник прорисовки
OnResize Возникает при изменении размеров компонента

Многооконные приложения

Многооконное приложение может работать одновременно с несколькими различными документами (объектами). В таком приложении главное окно содержит дочерние окна, размещенные в его пределах. В дочерних окнах обычно выполняется просмотр и редактирование документов.

Многодокументное приложение имеет одну главную форму, внутри которой может размещаться несколько дочерних окон. Тип окна (главное или дочернее) определяется свойством Formstyle, которое может принимать значения:

· fsMDiForm — для главной формы приложения;

· fsMDichild — для дочерних окон.

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

В процессе выполнения программы можно динамиче­ски создавать требуемое число экземпляров дочерней формы, например:

fmChild:=TfmChild.Create(Application);

fmChild.Caption:='Hoвoe дочернее окно';

После создания новой формы ее имя (в примере fmChild) указывает на экземп­ляр последней созданной формы. Для доступа ко всем дочерним формам используют свойство MDIChildren [I: Integer ] типа TForm главной формы приложения.

Это свойство является массивом, который содержит дочерние окна многодокументного приложения. Нумерация окон начинается с нуля, нуле­вой номер имеет верхнее окно. Число дочерних окон многодокументного приложения оп­ределяется свойством MDIChildCount типа Integer.

Например, в процедуре

procedure TfmMain.mnuNuitiberClick(Sender: TObject);

var n: integer;

begin

for n:=0 to fmMain.MDIChildCount-1 do

fmMain.MDIChildren[n].Caption:='OKHO номер '+IntToStr(n); end;

в названия дочерних окон приложения выводятся номера этих окон (в свойстве MDichildren главной формы fmMain приложения).

Для доступа к активному дочернему окну удобно использовать свойство ActiveMDichild типа TForm главной формы. Это свойство определяет, какое до­чернее окно находится в фокусе, и его можно использовать, например, для за­крытия окна.

Так, например, в процедуре

procedure TfmMain.mnuCloseChildClick (Sender: TObject);

begin

if fmMain. ActiveMDichild <> nil then fmMain. ActiveMDichild. Close;

end;

перед закрытием формы выполняется проверка на ее существование.

Свойства MDichildren, MDichildCount и ActiveMDichild доступны для чтения и действуют во время выполнения программы.

Закрытие главного окна многодокументного приложения, как и в однодокументном приложении, приводит к завершению работы всего приложения. За­крытие дочернего окна имеет особенность, связанную с тем, что при попытке его закрыть по умолчанию происходит минимизация окна. Чтобы окно за­крывалось привычным для пользователя способом, следует создать обработчик события OnClose дочерней формы:

procedure TfmChild.FormClose (Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

По умолчанию параметр-признак Action для дочерних окон имеет значение caMinimize и вместо закрытия дочерняя форма минимизируется.

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

При использовании методов Cascade и Tile дочерние окна упорядочиваются располагаясь каскадом или мозаикой соответственно. По умолчанию новые дочерние окна располагаются каскадом.

При упорядочивании окон мозаикой вариант их размещения определяется свой­ством TileMode типа TTileMode, принимающим следующие значения:

· tbHorizontal — дочернее окно располагается во всю ширину клиентской области родительской формы (по умолчанию);

· tbVertical — дочернее окно располагается во всю высоту клиентской области родительской формы.

Для программного перемещения между окнами можно использовать методы Previous и Next, которые передают фокус и делают активным предыдущее и следующее дочернее окно, соответственно. Пользователь может переключаться между окнами с помощью мыши или комбинаций клавиш <Ctrl>+<Tab> и <Ctrl>+ +<Shift>+<Tab>.

Главная форма содержит Arrangeicons, предназначенный для упорядочивания пиктограмм свернутых окон. На несвернутые (неминимизированные) окна метод Arrangeicons не оказывает влияния.

Многие многодокументные приложения в главном меню имеют подменю Окно, в котором обычно размещаются команды, предназначенные для манипулирова­ния дочерними окнами. Содержание этого подменю может быть следующим:

· каскад;

· мозаика;

· следующее окно;

· предыдущее окно.

При выборе одного из пунктов происходит вызов соответствующих методов, например, cascade или Next. Формируется это подменю обычным образом, т. е. путем создания пунктов меню и обработчиков события его выбора.

Кроме того, в пункте Окно главного меню часто содержится список раскрытых дочерних окон, в котором активное окно отмечается галочкой. Для автоматического отображения такого списка используется свойство windowMenu типа TMenuitem. В качестве пункта меню можно указывать только пункт верхнего уровня, т. е. пункт, название которого отображается непосредственно в строке меню.

Большинство событий формы многодокументного приложения генерируется и используется обычным способом. Исключением является событие OnActivate, генерируемое двумя способами. Когда приложение активно, при переключении между его дочерними окнами событие onActivate возникает при получении фокуса управления окном. Если приложение было неактивно, то в момент его активизации событие OnActivate возникает для главной формы.

Порядок выполнения работы

1. Создать многооконное приложение для решения задачи формирования и обработки двумерного динамического массива согласно варианту. Многооконное приложение должно содержать:

· главную форму, в которой находится главное меню и строка состояний, фиксирующая количество открытых дочерних окон;

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

2. Разработать подпрограммы:

· формирования динамической матрицы размером M x N целочисленных данных А с помощью датчика случайных чисел,

· вывода на экран динамической матрицы в компонент StringGrid,

· получения результата.

Подпрограммы должны обязательно иметь параметры.

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

Обязательно обработать все возможные исключительные ситуации.

Рис. 19.1 Экранная форма лабораторной работы №19

Варианты

1. Вычислить, произведение четных элементов k-го столбца.

2. Определить сумму нечетных элементов k-й строки.

3. Подсчитать для k -й строки количество элементов, больших среднего арифметического всех элементов матрицы.

4. Определить для k -го столбца количество элементов, меньших среднего арифметического всех элементов матрицы.

5. Установить номер строки, содержащей одинаковое количество положительных и отрицательных элементов (нулевые элементы не учитываются).

6. Найти номер столбца, содержащего одинаковое количество положительных и отрицательных элементов (нулевые элементы не учитываются).

7. Определить номер последнего столбца, содержащего только положительные элементы. Если таких столбцов нет, то сообщить об этом.

8. Установить номер последней строки, содержащей только отрицательные элементы. Если такие строки отсутствуют, необходимо сообщить об этом.

9. Найти номер последнего столбца, содержащего минимальный элемент (в матрице есть одинаковые элементы).

10. Определить номер последней строки, содержащей минимальный элемент (в матрице есть одинаковые элементы).

11. Установить номер последнего столбца, содержащего максимальный элемент (в матрице есть одинаковые элементы).

12. Найти номер последней строки, содержащей максимальный элемент (в матрице есть одинаковые элементы).

13. Вычислить произведение нечетных элементов k-го столбца.

14. Подсчитать сумму четных элементов k -й строки.

15. Определить для k -й строки количество элементов, меньших среднего арифметического всех элементов матрицы.

16. Найти для k -го столбца количество элементов, больших среднего арифметического всех элементов матрицы.

17. Вычислить, произведение нечетных элементов k -й строки.

18. Определить сумму четных элементов k -го столбца.

19. Найти для k -го столбца количество элементов, меньших среднего арифметического всех элементов матрицы.

20. Подсчитать для k -й строки количество элементов, больших среднего арифметического всех элементов матрицы.

21. Установить номер первой строки, содержащей разное количество положительных и отрицательных элементов (нулевые элементы не учитываются).

22. Определить номер первого столбца, содержащего разное количество положительных и отрицательных элементов (нулевые элементы не учитываются).

23. Найти для k -го столбца количество отрицательных элементов, меньших по модулю среднего арифметического всех элементов матрицы.

24. Вычислить для k -й строки количество положительных элементов, больших среднего арифметического всех элементов матрицы.

25. Определить для k -й строки минимальный элемент матрицы.

Контрольные вопросы

1. Компонент TStatusBar. Основные свойства.

2. Основные свойства таблицы строк.

3. Особенности создания форм многооконных приложений.

4. Доступ к элементам дочерних форм.

5. Особенности закрытия дочерних форм.

Лабораторная работа № 20
Компонент TChart ДЛЯ Построение диаграмм различных типов.
Компонент TChart (диаграмма).
Создание библиотек динамической компоновки (Dll).
Статическое подключение Dll

Цель работы: приобретение навыков использования компонента TChart для создания графиков. Изучение правил создания DLL и их статического подключения.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных