ДонНУ, кафедра КТ, проф.В.К.Толстых Платформа.NET Widows-приложения в среде Delphi for.NET Из цикла лекций «Internet-технологии разработки приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета Введение в.NET Введение в.NET
Общая система типов CTS (Common Type System) типы значений в стеке Среда исполнения CLR содержит обширную библиотеку стандартных типов и операций CTS, поддерживаемых большинством языков программирования. Например, целое число в CTS – это System.Int32, в Delphi – это Integer, в C# – это Int Типы данных среды CTS простые типы (Integer, Boolean, Double…) пользовательские типы (записи…) Набор именованных целочисленных констант ссылочные типы в хипе Типы объектов Типы указателей Типы интерфейсов ClassArray Аналог 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 MyIdeasMyTask FirstIdeaSecondIdeaThirdIdeaTask1Task2 SubTask1
Применение пространств имен Для доступа к идентификаторам в пространствах имен необходимо либо указать пространство имен в 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 2. Форма для Win32 3. Форма для.NET 1. Форма для ASP.NET Диспетчер проектов (файлы разных проектов, сборок, объединенных в группу) Вид моделей (дерево модулей, классов, объектов…) Базы данных Форма
Место компонент, принадлежащих форме Место событий формы Заголовок метода инициализации формы и её компонент Заголовок метода для управления освобождением памяти GC Заголовок метода для управления выделением памяти GC Место компонент и процедур пользователя в данном модуле Модуль WinForm, раздел Interface
Модуль WinForm, раздел Implementation Свернутые коды Реализация методов InitializeComponent Dispose Create Для работы GC Вызов конструктора для классов, унаследованных от TWinForm Инициализация параметров компонент, добавленных в InitializeComponent GC работает «по расписанию». Для немедленного вызова GC необходимо использовать методы Free (очищает в два прохода: ставит в очередь; удаляет) или Dispose (один проход). Если их не использовать, ненужные объекты всё равно будут удалены Обработчики событий пользователя
Пример.NET приложения Windows Form Application форма
Коды примера (изменения в модуле) 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; uses System.Drawing, System.Drawing.Drawing2D, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data; Элементы двухмерной графики (окончания линий) Новые объекты для рисования +
Коды примера constructor TWinForm.Create; begin inherited Create; InitializeComponent; MyGraphics := Graphics.FromHwnd(Panel1.Handle); MyPen := Pen.Create(Color.Blue); end; Создание объекта типа Graphics для панели Создание объекта типа Pen с инициализацией цвета Обработчик кнопки «Старт»: Первое знакоместо для заполнения первым из [следующих значений] окончания линий