
- •Занятие 1. Введение Почему именно Delphi?
- •Что мы видим на экране
- •Контрольные вопросы:
- •Занятие 2. Мое первое приложение в Delphi Вывести текст в окне
- •Задания для самостоятельной работы
- •Кнопки. Какие они бывают и зачем они?
- •Задания для самостоятельной работы
- •Поле редактирования
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 3. Введение в язык программирования Pascal
- •Понятие алгоритма
- •Структура процедуры
- •Правила задания имен языка Pascal
- •Задания для самостоятельной работы
- •Тип данных
- •Числовой тип данных. Целые числа
- •Числовой тип данных. Вещественные числа
- •Описание данных
- •Задания для самостоятельной работы
- •Операции
- •Присвоение значения переменной. Оператор присваивания
- •Задания для самостоятельной работы
- •Задача «Простой калькулятор»
- •Встроенные функции
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 4. Разветвляющийся алгоритм
- •Логический тип данных
- •Описание данных логического типа
- •Логические выражения
- •Разветвляющийся алгоритм
- •Оператор if
- •Оператор выбора case
- •Задания для самостоятельной работы
- •Списки. Компоненты ListBox и ComboBox
- •Зависимые переключатели. Компоненты RadioButton, RadioGroup
- •Задание для самостоятельной работы
- •Добавление формы к проекту
- •Структура модуля Pascal
- •Как открыть форму
- •Задание для самостоятельной работы
- •Способность форм ссылаться друг на друга
- •Задание для самостоятельной работы
- •Просмотр форм и ассоциированных с ними модулей
- •Основные свойства, методы и события формы
- •Менеджер проектов
- •Опции пpоекта
- •Упpавление пpоектами
- •Компиляция и сборка проекта
- •Выполнение и отладка проекта
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 6. Начинаем рисовать
- •Рисование линий
- •Задание цвета
- •Рисование фигур
- •Свойства класса tBrush
- •Вывод текста
- •События формы OnPaint и OnResize
- •Задания для самостоятельной работы
- •Занятие 7. Циклы
- •Цикл со счетчиком: for
- •Цикл с предусловием: while
- •Цикл с постусловием: repeat..Until
- •Использование операторов Continue и Break в циклах
- •Задание случайных чисел. Функция Random. Процедура Randomize
- •Вложенные циклы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 8. Массивы
- •Одномерные массивы
- •Двумерные массивы
- •Компонент tStringGrid
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 9. Строки и символы
- •Символьный тип данных
- •Строковый тип данных
- •Сравнение текстовой информации
- •Функции для работы с текстовой информацией
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 10. Работа с изображениями
- •Редактор Image Editor
- •Как отобразить рисунок в форме
- •Компонент Timer
- •Как заставить картинку двигаться
- •Случайное движение
- •Задание для самостоятельной работы.
- •Движение по закону
- •Задание для самостоятельной работы
- •Управляемое движение
- •Задание для самостоятельной работы
- •Как совместить разные виды движения
- •Задание для самостоятельной работы
- •Использование мыши
- •Занятие 11. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Где описывать процедуры(функции)
- •Передача параметров по ссылке и по значению
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Занятие12. Еще про компоненты Еще раз про списки
- •Функция MessageDlg
- •Задание для самостоятельной работы
- •Главное меню приложения. Компонент MainManu
- •Задание для самостоятельной работы
- •Кнопочная панель. Компонент ToolBar
- •Область редактирования. Компонент Memo
- •Контекстное меню. Компонент PopupMenu
- •Диалоговые окна Windows
- •Задание для самостоятельной работы
- •Занятие 13. Объектно-ориентированный подход (ооп) в программировании Основные понятия ооп
- •Основные принципы ооп
- •Тип данных запись (структура)
- •Задание для самостоятельной работы
- •Классы и объекты в Delphi
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 14. Работа с файлами
- •Общая технология работы с файлами в Delphi
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Как открыть форму
Форма открывается с помощью одного из своих методов: Show или ShowModal. Отличие методов состоит в том, что метод Show открывает обычное окно, а метод ShowModal открывает форму в режиме модального окна, т.е. окна, которое пользователь должен закрыть, прежде чем он сможет получить доступ к другим окнам. Например:
Form2.Show; где Form2 - имя открываемой формы.
Для того чтобы модуль вызывающей формы получил доступ к модулю вызываемой формы, нужно в Uses вызывающей формы добавить имя модуля вызываемой формы.
Напpимеp. Из Формы1 требуется открыть Форму2. С Формой1 связан модуль Unit1, а с Формой2 связан модуль Unit2. Нужно, чтобы модуль Unit1, связанный с Формой1 видел модуль Unit2, связанный с Формой2. Для этого необходимо в операторе Uses модуля Формы1, т.е. в Unit1, прописать имя модуля второй формы Unit2.
Unit Unit1 { Unit1 - модуль вызывающей Фоpмы1 }
implementaion
Uses ... , Unit2; { Unit2 - модуль вызываемой Фоpмы2 }
...
Этого же можно достичь, если, находясь в модуле Unit1, выполнить меню File | Use Unit. В результате в части implementaion модуля Unit1 появится объявление модуля Unit2.
Задание для самостоятельной работы
Создайте новое приложение.
Добавьте к нему новую форму
В главной форме приложения создайте кнопку, по которой будет вызываться новая форма.
Добавьте к приложению 5 новых форм. Откройте файл dpr и посмотрите, что он содержит.
Способность форм ссылаться друг на друга
Вы наверное обратили внимание на то, что мы добавляем оператор Uses в части implementaion модуля. Почему мы поступили именно так, почему не добавить модуль в части interface модуля? Можно добавить описание и в части interface модуля, но только в том случае, когда формы не ссылаются друг на друга.
Формы могут ссылаться одна на другую, т.е., например, из формы 1 вызывается форма 2, а форма 2, в свою очередь, ссылается на объекты формы 1. В этом случае, для того, чтобы не возникла ошибка circular referances во время компиляции, необходимо сделать одно из следующих действий:
разместите операторы Uses с описаниями модулей в части implementation соответствующих модулей (это означает разрешение формам ссылаться друг на друга).
разместите один оператор Uses в части interface одного модуля, а другой – в части implementation другого модуля.
Например, Form1 имеет связанный с ней модуль Unit1 и ссылается на форму Form2, имеющую модуль Unit2. Form2, в свою очередь, хочет получить доступ к объекту Label1, находящемуся в форме Form1. Соответствующие Unit-файлы будут выглядеть следующим образом:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; end.
|
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject); begin Form1.Label1.Caption:='Hello'; end; end.
|