Из цикла лекций «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; инициализацией цвета Обработчик кнопки «Старт»: окончания линий Первое знакоместо для заполнения первым из [следующих значений]