ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Теоретические сведения. Компонент TStatusBar (строка состояний)Компонент TStatusBar (строка состояний) Компонент StatusBar предназначен для создания строки состояния, которая располагается в нижней части основной формы. Компонент может иметь несколько панелей (секций). Добавляется компонент с помощью кнопки на вкладке (Win32) панели инструментов. С компонентом связывается Компонент класса TStatusPanels, который определяет панели компонента. Некоторые свойства класса TStatusPanels приведены в табл. 19.1. Таблица 19.1. Свойства TStatusPanel
Свойства компонента TStatusBar приведены в табл. 19.2. Таблица 19.2. Свойства TStatusBar
События компонента TStatusBar приведены в табл. 19.3. Таблица 19.3. События TStatusBar
Многооконные приложения Многооконное приложение может работать одновременно с несколькими различными документами (объектами). В таком приложении главное окно содержит дочерние окна, размещенные в его пределах. В дочерних окнах обычно выполняется просмотр и редактирование документов. Многодокументное приложение имеет одну главную форму, внутри которой может размещаться несколько дочерних окон. Тип окна (главное или дочернее) определяется свойством 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 для создания графиков. Изучение правил создания DLL и их статического подключения. Не нашли, что искали? Воспользуйтесь поиском:
|