Widows-приложения в среде Delphi for .NET

advertisement
Из цикла лекций «Internet-технологии разработки приложений» для студентов 4-го курса кафедры Компьютерных
технологий физического факультета Донецкого национального университета
Платформа .NET
Widows-приложения в среде Delphi for .NET
Введение в .NET
ДонНУ, кафедра КТ, проф.В.К.Толстых
Общая система типов CTS
(Common Type System)
Среда исполнения CLR содержит обширную библиотеку стандартных типов и
операций CTS, поддерживаемых большинством языков программирования. Например,
целое число в CTS – это System.Int32, в Delphi – это Integer, в C# – это Int
Типы данных среды CTS
типы значений в стеке
простые типы
(Integer, Boolean, Double…)
пользовательские типы
(записи…)
ссылочные типы в хипе
Типы
объектов
Class
Типы
указателей
Типы
интерфейсов
Array
Набор именованных
целочисленных констант
Аналог VCL в Delphi, аналог MFC в Visual C++ – это FCL (.NET Framework Class
Library) – библиотека классов, типов, интерфейсов …
Пространство имен
– это логические и организационные разделы типов данных. Они
позволяют хранить типы данных и функции в иерархической структуре.
Пространства имен объявляются в операторах program (пространство имен проекта по
умолчанию) и в unit. Иерархии имен создаются при помощи точки.
Например:
program MyProject.MyIdeas;
unit MyProject.MyIdeas.FirstIdea;
unit MyProject.MyIdeas.SecondIdea;
unit MyProject.MyIdeas.ThirdIdea;
unit MyProject.MyTask.Task1;
unit MyProject.MyTask.Task1.SubTask1;
unit MyProject.MyTask.Task2;
MyProject
MyIdeas
FirstIdea
SecondIdea
MyTask
ThirdIdea
Task1
SubTask1
Task2
Применение пространств имен
Для доступа к идентификаторам в пространствах имен необходимо либо указать
пространство имен в uses:
uses
MyProject.MyIdeas; // не включает подчиненных пространств
MyProject.MyIdeas.FirstIdea;
либо обращаться с помощью квалификатора:
WriteLn(MyProject.MyIdeas.FirstIdea.Identificator);
Если в разных пространствах имен имеются одинаковые идентификаторы, то
обращаться к ним можно только через квалификаторы, а для сокращения
длины квалификаторов можно использовать псевдонимы модулей:
uses MyProject.MyIdeas.FirstIdea.FileClasses as FC;
Далее можно применять:
MyFile := FC.File.Create;
Пространство имен System
Содержит базовые классы, кроме того – ссылочные типы данных, типы данных
значения, события, обработчики событий, интерфейсы, атрибуты и механизм
обработки исключений.
Некоторые классы первого уровня пространства System:
System.ComponentModel
классы и интерфейсы, обеспечивающие реализацию
компонентов времени разработки и времени выполнения
System.Data
классы и интерфейсы для работы с БД
System.Drawing
классы для доступа к GDI+ и функции рисования
System.IO
типы данных для работы с файлами, потоками
System.String
функции для работы со строками
System.Text
классы, обеспечивающие возможности форматирования текста
System.Timers
функции таймера
System.Web
классы, обеспечивающие коммуникацию между браузером и
сервером, – ASP.NET
System.Windows.Forms
классы, обеспечивающие возможности приложений
рабочего стола Windows
Delphi for .NET
Форма
1. Форма для
ASP.NET
Диспетчер
проектов (файлы
разных проектов, сборок,
объединенных в группу)
Вид моделей
(дерево модулей,
классов, объектов…)
2. Форма для
Win32
3. Форма для
.NET
Базы
данных
Модуль WinForm,
раздел Interface
Место компонент,
принадлежащих форме
Место событий формы
Заголовок метода
инициализации формы и её
компонент
Заголовок метода для
управления освобождением
памяти GC
Место компонент и
процедур пользователя в
данном модуле
Заголовок метода для управления
выделением памяти GC
Свернутые коды
Модуль WinForm,
раздел
Implementation
Реализация методов
InitializeComponent
Dispose
Create
Для работы GC
GC работает «по расписанию».
Для немедленного вызова GC
необходимо использовать методы
Free (очищает в два прохода:
ставит в очередь; удаляет) или
Dispose (один проход).
Если их не использовать, ненужные
объекты всё равно будут удалены
Вызов конструктора для
классов, унаследованных от
TWinForm
Инициализация параметров компонент,
добавленных в InitializeComponent
Обработчики событий пользователя
Пример .NET приложения
Windows Form Application
форма
Коды примера
(изменения в модуле)
Элементы двухмерной
графики (окончания линий)
uses
System.Drawing, System.Drawing.Drawing2D, System.Collections,
System.ComponentModel, System.Windows.Forms, System.Data;
+
type
TWinForm = class(System.Windows.Forms.Form)
Designer Managed Code
strict protected // доступно в данном классе и его потомках
procedure Dispose(Disposing: Boolean); override;
private // доступно в данном модуле
Новые объекты
MyGraphics: Graphics;
для рисования
MyPen: Pen;
public // доступно в любом месте программы
constructor Create;
end;
Коды примера
constructor TWinForm.Create;
begin
Создание объекта типа
Graphics для панели
inherited Create;
InitializeComponent;
MyGraphics := Graphics.FromHwnd(Panel1.Handle);
MyPen := Pen.Create(Color.Blue);
Создание объекта типа Pen с
end;
инициализацией цвета
Обработчик кнопки «Старт»:
окончания линий
Первое знакоместо для
заполнения первым из
[следующих значений]
Download