
- •1. Понятие алгоритма. Свойства, способы описания и задания алгоритма.
- •2. Структура программы. Раздел описания в Паскале.
- •3. Алфавит языка Паскаль, идентификаторы, константы, переменные, стандартные математические функции.
- •4. Типы данных в Паскале.
- •5. Понятие константы и переменной. Объявление в Паскале.
- •6. Арифметические и логические операции в Паскале.
- •7. Стандартные математические функции в Паскале. Приведите примеры.
- •8. Ввод данных, команды ввода с клавиатуры в Паскале. Вывод данных. Формат вывода.
- •9. Процедуры Read и Readln в Паскале. Приведите примеры.
- •10. Управляющие конструкции в Паскале: операторы условного и безусловного перехода.
- •11. Управляющие конструкции в Паскале: оператор выбора.
- •12. Укажите особенности алгоритмов циклической структуры типа «До» и «Пока». Приведите примеры.
- •13. Цикл с параметром в Паскале. Приведите примеры.
- •14. Цикл с постусловием в Паскале. Приведите примеры.
- •15. Цикл с предусловием в Паскале. Приведите примеры.
- •16. Перечисляемый тип данных в Паскале. Примеры объявления в Паскале.
- •17. Двумерные массивы. Объявление и обработка элементов в Паскале.
- •18. Строковый тип данных в Паскале. Объявление и обработка. Запись строковых выражений.
- •19. Дайте определение и опишите назначение меток и операторов перехода в Паскале.
- •20. Процедуры и функции обработки строковых данных в Паскале.
- •21. Процедуры в Паскале. Объявление и вызов.
- •22. Функции в Паскале. Объявление и вызов.
- •23. Процедуры и функции в Паскале: формальные и фактические параметры. Передача параметров.
- •24. Понятие подпрограммы в Паскале. Приведите пример.
- •25. Множества в Паскале: объявление и обработка.
- •26. Множества в Паскале: операции над множествами.
- •27. Опишите операции отношения между множествами.
- •28. Записи в Паскале. Объявление и обработка.
- •29. Типизированные файлы. Процедуры и функции обработки типизированных файлов.
- •30. Нетипизированные файлы. Процедуры и функции обработки нетипизированных файлов.
- •31. Строковый тип данных. Перечислите операции над строками в Паскале.
- •32. Текстовые файлы. Процедуры и функции обработка текстовых файлов.
- •33. Назначение процедуры Assing в Турбо Паскале. Стандартные файловые переменные.
- •34. Пользовательские и стандартные модули. Структура подключения к программе.
- •35. Укажите функции определения длины строки, преобразования строчной литеры в прописную в языке Паскаль.
- •36. Назначение и формат функций Copy, Pos в языке Паскаль.
- •1. Основные составные части проекта в Delphi: опишите их структуру и назначение.
- •2. Перечислите состав и опишите назначение файлов проекта в Delphi.
- •3. Механизм использования шаблонов в Delphi.
- •5. Понятие события и процедуры обработки события в Delphi.
- •6. Понятия Объект, Поле объекта. Метод объекта в Delphi.
- •7. Дайте определение понятию Класс. Поясните разницу между классом и объектом в Delphi.
- •8. Редактор кода в Delphi: структура модуля программы.
- •9. Общая характеристика визуальных компонентов в Delphi, Страницы Палитры компонентов.
- •10. Опишите назначение компонент tButton, tCheckBox, tRadioButton.
- •11. Компоненты Image, PaintBox в Delphi.
- •12. Объясните назначение окна редактора кода и окна инспектора объектов в Delphi.
- •13. Компоненты ввода и отображения текстовой информации в Delphi.
- •24. Компоненты редактирования. Многострочные редакторы. Основные свойства.
- •14. Многострочные окна редактирования. Компоненты Delphi для редактирования.
- •16. Что называется наследованием? Укажите, как определить объект-наследник.
- •17. Кнопки в Delphi. Компоненты кнопок разных типов.
- •18. Компоненты выбора из списков – ListBox, CheckListBox и ComboBox.
- •19. Группы радиокнопок – компоненты RadioGroup, RadioButton и GroupBox.
- •20. Ползунки и полосы прокрутки – компоненты TrackBar и ScrollBar.
- •21. Понятие меню в Delphi. Компоненты и управление меню.
- •22. Контекстное всплывающее меню – компонент меню.
- •23. Панели общего назначения – компоненты Panel, GroupBox, Bevel, ScrollBox, Splitter.
- •25. Компоненты ввода и отображения текстовой информации.
- •15. Варианты организации ввода информации в Delphi.
- •26. Многострочные окна редактирования.
- •27. Компоненты отображения графической информации.
- •28. Компоненты Image и PaintBox.
- •29. Опишите назначение частных и общих объявлений в Delphi.
- •30. Опишите функцию преобразования строковой переменной в число и числовой переменной в строку в Delphi.
- •31. Опишите процесс создания исполняемого файла в Delphi.
- •32. Дайте определение компонента. Опишите отличие визуального от не визуального компонента.
- •33. Назначение класса tCanvas. Приведите примеры методов этого класса.
- •34. Варианты ввода информации в Delphi. Назначение и формат функций ShowMessage и MessageDlg.
22. Контекстное всплывающее меню – компонент меню.
Контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут потребоваться при работе с данным компонентом.
Контекстному меню соответствует компонент PopupMenu. Поскольку в приложении может быть несколько контекстных меню, то и компонентов PopupMenu может быть несколько. Оконные компоненты: панели, окна редактирования, а также метки и др. имеют свойство PopupMenu, которое по умолчанию пусто, но куда можно поместить имя того компонента PopupMenu, с которым будет связан данный компонент.
Формирование контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого двойным щелчком на PopupMenu, точно так же, как это делалось для главного меню. Обратим только внимание на возможность упрощения этой работы. Поскольку разделы контекстного меню обычно повторяют некоторые разделы уже сформированного главного меню, то можно обойтись копированием соответствующих разделов. Для этого, войдя в Конструктор Меню из компонента PopupMenu, щелкните правой кнопкой мыши и из всплывшего меню выберите команду Select Menu (выбрать меню). Вам будет предложено диалоговое окно, в котором вы можете перейти в главное меню. В нем вы можете выделить нужный вам раздел или разделы (при нажатой клавише Shift выделяются разделы в заданном диапазоне, при нажатой клавише Ctrl можно выделить совокупность разделов, не являющихся соседними). Затем выполните копирование их в буфер обмена, нажав клавиши Ctrl-C. После этого опять щелкните правой кнопкой мыши, выберите команду Select Menu и вернитесь в контекстное меню. Укажите курсором место, в которое хотите вставить скопированные разделы, и нажмите клавиши чтения из буфера обмена — Ctrl-V. Разделы меню вместе со всеми их свойствами будут скопированы в создаваемое вами контекстное меню.
В остальном работа с PopupMenu не отличается от работы с MainMenu. Только не возникает вопросов объединения меню разных форм: контекстные меню не объединяются.
23. Панели общего назначения – компоненты Panel, GroupBox, Bevel, ScrollBox, Splitter.
Панели Panel используются наиболее широко. С их помощью компонуются различные элементы интерфейса (кнопки, окна редактирования, списки), функционально связанные друг с другом. Такая функциональная связь должна поддерживаться и зрительной связью — объединением соответствующих элементов в рамках одной панели. Панели Panel могут также использоваться для организации инструментальных панелей, полос состояния и т.п.
Одним из назначений панелей является также группирование таких управляющих элементов, как RadioButton — радиокнопки. Все радиокнопки, расположенные на панели, работают как согласованная группа: в любой момент может быть выбрана только одна из них. Аналогично согласованной группой работают и расположенные на панели быстрые кнопки SpeedButton , если они имеют одинаковое значение свойства GroupIndex. В то же время SpeedButton, расположенные на разных панелях или на панели и форме, не образуют связанной группы даже при одинаковом значении GroupIndex.
Внешний вид панели Panel определяется совокупностью параметров BevelInner — стиль внутренней части панели, BevelOuter — стиль внешней части панели, BevelWidth — ширина внешней части панели, BorderStyle — стиль бордюра, BorderWidth — ширина бордюра. Верхняя панель соответствует значениям параметров по умолчанию. Нижняя панель соответствует случаю, когда не определен стиль ни одной из областей панели (значения всех параметров равны None), В этом случае сама панель никак не выделяется на форме. Видна только надпись на ней (свойство Caption), если надпись задана, и, конечно, видны те компоненты, которые размещаются на панели.
Если вы строите приложение, в котором разрешаете пользователю изменять размер окна, надо позаботиться о том, чтобы синхронно с этим изменялись и размеры панелей. В зависимости от ситуации какие-то панели в приложении могут оказаться временно перегруженными отображаемыми данными, а другие в значительной степени пустыми. В этих случаях полезно предоставить пользователю возможность перемещать границы, разделяющие различные панели, изменяя их относительные размеры. Пример такой возможности вы можете увидеть в программе Windows «Проводник».
В библиотеке Delphi имеется специальный компонент — Splitter, который позволяет легко осуществить это. Рассмотрим это на примере.. При изменении пользователем размеров окна панель Panel1 должна в любом случае занимать всю нижнюю часть окна, не увеличиваясь в высоту. Панель Panel2 должна занимать левую часть окна, изменяя при изменении размеров окна свою высоту, но не изменяя ширину. А панель Panel3 должна занимать всю оставшуюся часть окна. Кроме того мы хотим обеспечить пользователю возможность изменять положение границы между панелями Panel2 и Panel3, расширяя одну из этих панелей и соответственно сжимая другую.
Исходя из наших требований свойство Align надо установить у панели Panel1 в alBottom (выравнивание по нижнему краю окна), у панели Panel2 — в аlLeft (выравнивание по левому краю окна), у панели Panel3 — в alClient (выравнивание по всей оставшейся части клиентской области окна). А между Panel2 и Panel3 надо разместить Splitter — разделитель.
Свойство MinSize компонента Splitter устанавливает минимальный размер в пикселях обеих панелей, между которыми зажат разделитель. Задание такого минимального размера необходимо, чтобы при перемещениях границы панель не сжалась бы до нулевого размера или до такой величины, при которой на ней исчезли бы какие-то необходимые для работы элементы управления. К сожалению, как вы сами можете убедиться, экспериментируя с компонентом Splitter, свойство MinSize не всегда срабатывает верно. К тому же это свойство относится к обеим панелям, граница между которыми перемещается, а в ряде случаев желательно раздельно установить различные минимальные размеры одной и другой панели. Это проще (и надежнее) сделать, задав в панелях соответствующие значения свойства Constraints. Например, если вы в описанном выше тестовом приложении зададите в свойстве Constraints в панели Panel2 значение MinWidth = 50, а в панели Panel3 MinWidth = 100, то именно только до таких размеров в процессе выполнения приложения пользователь сможет изменять эти панели.
Компонент Splitter имеет событие OnMoved, которое наступает после конца перемещения границы. В обработчике этого события можно предусмотреть, если необходимо, упорядочение размещения компонентов на панелях, размеры которых изменились: переместить какие-то метки, изменить размеры компонентов и т.д.
Панель GroupBox не имеет таких широких возможностей задания различных стилей оформления, как Panel. Но она имеет встроенную рамку с надписью, которая обычно используется для выделения на форме группы функционально объединенных компонентов. Никаких особых свойств, отличных от уже рассмотренных, панель GroupBox не имеет.
Компонент Bevel формально не является панелью, он не может служить контейнером для компонентов. Например, с помощью Bevel нельзя сгруппировать радиокнопки. Однако, чисто зрительно компонент Bevel может использоваться как подобие панели.
Стиль отображения Bevel определяется свойством Style, которое может принимать значения bsLowered — утопленный, и bsRaised — приподнятый. А контур компонента определяется свойством Shape, которое может принимать значения: bsBox — прямоугольник, bsFrame — рамка, bsSpacer — пунктирная рамка, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine — соответственной верхняя, нижняя, левая и правая линии. В зависимости от значения Style линии могут быть утопленными или выступающими.
ScrollBox — панели с прокруткой. Этот компонент предназначен для создания области, в которой могут размещаться компоненты, занимающие площадь большую, чем сам ScrollBox. Например, компонент ScrollBox можно использовать для размещения длинных текстовых строк или больших инструментальных панелей, которые исходя из соображений экономии площади окна нецелесообразно отображать целиком.
Разместить в пределах небольшой области ScrollBox большие компоненты или много компонентов, занимающих в сумме большую площадь, можно в процессе проектирования, например, с помощью такого приема. Увеличьте временно размер ScrollBox так, чтобы в этом компоненте поместилось все, что вы хотите разместить. Проведите необходимое размещение. А затем сократите размеры ScrollBox до требуемых.
Свойство BorderStyle определяет стиль рамки компонента ScrollBox. Свойство AutoScroll позволяет задать автоматическое появление необходимых полос прокрутки, если размер размещенных компонентов превышает размер области по горизонтали, вертикали или в обоих измерениях. Если по каким-то соображениям это нежелательно, вы можете сами управлять появлением горизонтальной и вертикальной полос с помощью свойств HorzScrollBar и VertScrollBar соответственно. Но в этом случае вы должны сами задавать ряд свойств полосы прокрутки и, прежде всего, Range — размер в пикселях прокручиваемой области. Значение перемещения при однократном нажатии пользователем кнопки прокрутки может рассчитываться компонентом автоматически исходя из размеров области и окна, если свойство полосы прокрутки Smooth установлено в true. В противном случае вы должны задать величину единичного перемещения в свойстве Increment.