Курсовая работа: Основы программирования в среде Delphi 70
Название: Основы программирования в среде Delphi 70 Раздел: Рефераты по информатике Тип: курсовая работа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Кафедра: Автоматика и информационные технологии КУРСОВАЯ РАБОТА На тему: "Основы программирования в среде Delphi 7.0" Екатеринбург, 2009 год Содержание Введение 1. Основные понятия объектно-ориентированного программирования. 2. Интегрированная среда разработки Delphi: назначение и общее описание среды 3. Общая организация программы в Delphi 4. Некоторые справочные сведения для работы в среде Delphi Заключение Список литературы Введение Допускаю, что вы пока еще не слышали этого названия. Хотя, быть может, и слышали. Delphi – это греческий город, где жил дельфийский оракул. И этим именем был назван новый программный продукт с феноменальными характеристиками. Hадо отметить, что к моменту выхода продукта обстановка вокруг компании Borland складывалась не лучшим для нее образом. Поговаривали о возможной перепродаже компании, курс акций компании неудержимо катился вниз. Сейчас уже можно без всяких сомнений утверждать, что период трудностей позади. Hеверно, конечно, было бы говорить, что только Delphi явился причиной восстановления компании; кроме Delphi, у Borland появились и другие замечательные продукты, так же, как и Delphi, основывающиеся на новых, появившихся недавно у компании Borland, технологиях. Яимеюввидуновые BDE 2.0, BC++ 4.5, Paradox for Windows 5.0, dBase for Windows 5.0, BC++ 2.0 for OS/2. Тем не менее, именно Delphi стал тем продуктом, на примере которого стало ясно, что у Borland есть еще порох в пороховницах, и что один единственный продукт может настолько удачно сочетать несколько передовых технологий. 1. Основные понятия объектно-ориентированного программирования Объектно-ориентированное программирование (ООП) зародилось в языках программирования Паскаль, Ада, С++. До появления ООП технология создания компьютерных программ базировалась на процедурном программировании, в котором основой программ являлись функции и процедуры, т.е. действия. Созданная т.о. компьютерная программа отличалась четким алгоритмом работы – последовательностью действий по достижению поставленной цели. В ООП основной точкой опоры при проектировании программы является – объект . Программа ООП – это не последовательность операторов, а совокупность объектов и способов их взаимодействия. Обмен информацией между объектами происходит посредством сообщений . 1) Объектом назовем понятие, абстракцию или любой предмет с четко очерченными границами, который имеет смысл в контексте рассматриваемой прикладной проблемы. Объекты могут наследовать характеристики и поведение других объектов, называемых родительскими или предками. Наличие механизма наследования является самым существенным различием между обычным программированием на Pascal ООП программированием в Delphi. 2) Основным понятием ООП является понятие класса: классом – называют особую структуру, которая может иметь в своем составе поля, методы и свойства. Класс – это множество объектов, которые обладают внутренними свойствами, присущими любому объекту класса. Причем специфика класс проводится путем определения его внутренних свойств (классообразующие признаки). Класс выступает в качестве объектного типа данных. Классы имеют поля (как тип данных Record), свойства (напоминающие поля, но имеющие дополнительные описания) и методы (подпрограммы, которые обрабатывают поля и свойства класса). Базовым классом для всех объектов в Delphi, является класс TObject . Этот класс инкапсулирует основные функции, свойственные всем объектам Delphi. Все классы в Delphi являются прямыми или косвенными наследниками этого класса. 3) Иерархия объектов класса . Каждый конкретный класс имеет свои особенности поведения и характеристик, определяющих этот класс. Например, класс геометрических фигур можно разделить на два подкласса: плоские и объемные фигуры. Плоские фигуры могут иметь вершины и не иметь их. Плоскими фигурами, не имеющими вершин, являются окружности и эллипсы. При использовании ООП следует помнить, что если характеристика однажды определена, то все категории, расположенные ниже данного определения, тоже будут содержать эту характеристику. Поэтому, если определена окружность, то нет необходимости узнавать сколько у нее вершин, т. к. она относится к подклассу фигур, не имеющих вершин. 4) Наследование . В терминах Паскаль объект наиболее схож с типом Record, который является структурированным типом для объединения нескольких связанных элементов под одним именем. Предположим, что требуется написать программу, которая подсчитывает размер стипендий и заработной платы в институте или университете. Переменная (назовем ее TPerson ), содержащая данные об именах студентов и сотрудников, дате и размере выплат, могла бы выглядеть следующим образом: TPerson = Record Name: String [30]; {поле – имя} Date: String [10]; {поле – дата} RazV: Real; {поле – размервыплаты} End ; Каждое значение, присвоенное переменной TPerson , является экземпляром типа record, представляет два уровня абстракции, т.е. можно рассматривать поля Имя, Дата, Размер_выплат по отдельности, или в совокупности для описания конкретного человека как TPerson. Предположим, что программа должна учитывать выплаты денег студентам и сотрудникам. В каждой группе выплаты производятся особым способом. Можно создать другой тип записи для группы студент. Для получения данных о том, сколько денег должен получать студент, необходимо знать его средний балл, можно построить запись TStudent вида: TStudent = Record Name: String [30]; Date: String [10]; RazV: Real; Ball: Real; {среднийбалл} End ; Однако можно сохранить тип TPerson путем создания поля Student типа TPerson внутри типа TStudent. TSudent = Record Student: TPerson; Ball: Real; End ; Такая конструкция удобна и проста, поэтому постоянно используется в программировании. Для студента тип TStudent должен содержать все поля, которые имеются в записи TPerson, при этом тип TStudent является типом потомком для типа TPerson. TStudent наследует все, что принадлежит TPerson, и кроме того, содержит новые поля, которые делают TSudent уникальным. Процесс, с помощью которого один тип наследует характеристики другого типа, называется наследованием. В Delphi все классы являются потомками класса TObject. В примере два связанных типа объектов могли бы определяться следующим образом: TPersonal = Object Name: String [30]; Date: String [10]; RazV: Real; End ; 5) Операции и методы . Функция (или преобразование), которую можно применять к объектам данного класса, называется операцией. Если одна и та же операция применяется к объектам разного класса, то ее называют полиморфной. Обычно при работе с записями возникает проблема инициализации полей записи. Для присвоения полям, в рассмотренном ранее примере, начальных значений можно использовать оператор With, но при необходимости инициализировать более одной записи придется использовать большое число операторов With, которые будут выполнять одни и те же действия. Поэтому естественным является создание инициализирующей процедуры, которая обобщает применение оператора with к любому экземпляру типа TPerson, передаваемого в качестве параметра: Procedure Init (var Person: TPerson; N, D: String; R: Real); Begin With Person do begin Name: = N; Date: = D; RazV: = R; End; End ; Процедура Init, включенная в объект специально для обслуживания типа TPerson, называется методом, т.е. метод – это процедура или функция, включенная в объект таким образом, что экземпляр данного типа становится доступным для нее изнутри. Поля и методы являются двумя составными частями новой структуры, называемой объектом. С учет вышесказанного объект TPerson можно описать следующим образом: Type Tperson = Object; Name: String [30]; Date: String [10]; RazV: Real; Procedure Init (N, D: String; R: Real); End; Procedure TPerson. Init (N, D: String; R: Real); Begin Name: = N; Date: = D; RazV: = R; End ; Таким образом, каждой операции соответствует метод – реализация этой операции для объектов данного класса. Каждая операция имеет один неявный аргумент – объект, к которому она применяется. Выбор метода связан только с классом и объектом. Теперь для инициализации экземпляра типа TStudent достаточно просто вызвать его метод: Var Person: TPerson; Person. Init (» НиколайИванович ‘, ‘25–06–1995 ‘, 40000); 6) Определение методов . Процесс определения методов напоминает создание модулей в TurboPascal. Внутри объекта метод определяется заголовком процедуры или функции, действующей как метод: Type Tperson = Object; Name: String [30]; Date: String [10]; RazV: Real; Procedure Init (N, D: String; R: Real); Function GetName: String; Function GetDate: String; FunctionGetRazV: Real; End ; Поля данных должны быть объявлены перед объявлением методов. Сами методы описываются вне определения объекта как отдельная процедура или функция. При определении метода его имени должно предшествовать имя типа объекта, которому принадлежит данный метод, с последующей точкой: Procedure TPerson. Init (N, D: String; R: Real); Begin Name: = N; Date: = D; RazV: = R; End; Function TPerson. GetName: String; Begin GetName: = N; End; Function TPerson. GetDate: String; Begin GetDate: = D; End; Function TPerson. GetRazV: Real; Begin GetRazV: = R; End ; 7) Свойства объекта . Совокупность данных и методов их чтение и записи называются свойством. Свойства объектов можно устанавливать в процессе проектирования, а также можно изменять программно во время выполнения программы. (В процессе проектирования приложений в среде программирования Delphi можно просматривать значения некоторых из этих данных в окне Инспектора Объектов и изменять эти значения). 8) События и их обработка . Средой взаимодействия объектов являются сообщения , генерируемые в результате наступления различных событий. Событие – это взаимодействие на объект. Событие наступает в результате действий пользователя (перемещение курсора, нажатие кнопки и т.п.). В каждом объекте определено множество событий, на которые он может реагировать. В конкретных объектах могут быть определены обработчики каких-то из этих событий. К написанию этих обработчиков и сводится основное программирование с помощью Delphi. Таким образом, можно определить объект как совокупность свойств и методов, а также событий, на которые он может реагировать. Внешнее управление объектом осуществляется через обработчики событий. Эти обработчики обращаются к методам и свойствам объекта. Начальные значения данных объекта могут задаваться также в процессе проектирования установкой различных свойств. В результате выполнения методов объекта могут происходить новые события, воспринимаемые другими объектами программы или пользователем. 2. Интегрированная среда разработки Delphi: назначение и общее описание средыDelphi – это потомок среды программирования TurboPascal. Название среды произошло от названия города в Древней Греции, где находился знаменитый Дельфийский оракул (храм Аполлона в городе Дельфы, жрецы которого занимались предсказаниями). Система визуального объектно-ориентированного проектирования Delphi позволяет: 1. Создавать законченные приложения для Windows самой различной направленности. 2. Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена, поскольку использует функции, процедуры и библиотеки Windows. 3. Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования. 4. Создавать мощные системы работы с базами данных любых типов. 5. Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п. 6. Создавать справочные системы, как для своих приложений, так и для любых других. 7. Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы. Delphi – быстро развивающаяся система. Первая версия Delphi была выпущена в феврале 1995 года, в 1996 году вышла вторая версия, 1997 – третья, 1998 – четвертая, 1999 – пятая, 2001 – шестая. Все версии, начиная с Delphi 2.0, рассчитаны на разработку 32-разрядных приложений, т.е. приложений для операционных систем Windows 95/98, NTи т.д. В 2002 году вышла седьмая версия, основным нововведением в которой были Интернет-технологии. Общее описание среды. Интегрированная среда разработки Delphi – это среда, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений. Большинство версий Delphi выпускается в нескольких вариантах: а) стандартная, б) профессиональная версия, в) разработка баз данных предметных областей. Эти варианты различаются, в основном разным уровнем доступа к системам управления базами данных. Последние два варианта являются наиболее мощными в этом отношении. Библиотеки компонентов в различных вариантах практически одинаковы. 1) Верхней части окна среды отображается полоса главного меню . Назначение каждого пункта меню можно уточнить в справочной системе Delphi. Для получения справки следует выбрать интересующий пункт меню и нажать клавишу F1. Выбор команды меню выполняется любым из стандартных способов: F10, Alt+горячая клавиша или щелчком мыши на нужном пункте меню. Назначение команд меню представлены в таблице:
2) Ниже полосы главного меню расположены две инструментальные панели . Левая панель (состоящая, в свою очередь, из трех панелей) содержит два ряда кнопок, дублирующих некоторые наиболее часто используемые команды меню (открыть, сохранить, сохранить все и т.д.). Правая панель содержит панель библиотеки визуальных компонентов (или палитра). Палитра компонентов содержит ряд страниц, закладки которых видны в ее верхней части. Страницы сгруппированы в соответствии с их смыслом и назначением. Поскольку число предоставляемых компонентов растет от версии к версии, то остановимся на основных (12 страниц). Основные Палитры компонентов представлены в таблице:
3) Правее полосы главного меню располагается еще одна небольшая инструментальная панель, содержащая раскрывающийся список и две кнопки. Эта панель служит для сохранения и выбора различных конфигураций окна среды, которые можно создавать и запоминать. 4) Под палитрой компонентов располагается окно формы с размещенными на ней компонентами. Форма является основой почти всех приложений Delphi. Форму можно понимать как типичное окно Windows. Она обладает теми же свойствами, что и другие окна. Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки размещаются те компоненты, которые помещены на форму. Во время выполнения приложения эта сетка не видна. 5) В основном поле окна слева находится окно Инспектора объектов , с помощью которого в дальнейшем можно задавать свойства компонентов и обработчики событий. Инспектор объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения активного компонента. Первая страница – это Свойства, вторая – События. Рассмотрим некоторые свойства любого компонента :
Каждый компонент имеет свой набор свойств, который соответствует назначению этого компонента. Страница Событий – вторая часть Инспектора объектов. На ней указаны все события, на которые может реагировать выбранный объект. 6) Одним из наиболее важных элементов среды Delphi является окно Редактора кода . Оно располагается ниже окна формы, обычно при первом взгляде на экран невидимо, т. к. его размер равен размеру формы и окно Редактора кода практически полностью перекрывается окном формы. Редактор кода является полноценным программным редактором. В заголовке окна редактора кода отображается имя текущего файла, с текстом которого производится работа (стандартное имя – Main.pas). В нижней части окна Редактора кода располагается строка состояния. В самой левой ее позиции отображается позиция курсора: номер строки и колонки. 7) Выше окна Инспектора объектов расположено окно Дерево объектов , которое отображает структуру компонентов приложения с точки зрения их принадлежности друг к другу. Примечание: Страница событий связана с Редактором кода, если дважды щелкнуть мышью по правой стороне какого либо пункта, то соответствующий данному событию код будет автоматически помещен в окно Редактора кода. 3. Общая организация программы в DelphiПрограмма, создаваемая в среде Delphi в процессе проектирования приложения, основана на модульном принципе. Главная программа состоит из объявления списка используемых модулей и нескольких операторов, создающих объекты для необходимых форм и запускающих приложение на выполнение. Модульность очень важна для создания надежных и относительно легко модифицируемых и сопровождаемых приложений. Четкое соблюдение принципов модульности в сочетании с принципом скрытия информации позволяет производить модификации внутри любого модуля, не затрагивая при этом остальных модулей и главную программу. Все объекты компонентов размещаются в объектах – формах. Для каждой формы, проектируемой в приложении, Delphi создает отдельный модуль. Именно в модулях и осуществляется программирование задачи. В обработчиках событий объектов размещаются описания алгоритмов, которые в основном сводятся к обработке информации, содержащейся в свойствах одних объектов, и задании по результатам этой обработки свойств других объектов. Структура файла главной (головной) программы приложения Delphi . В процессе проектирования Delphi автоматически создает код головной программы и отдельных модулей. В модули вводятся собственные коды, создавая обработчики различных событий. Но головную программу, как правило, не приходится модифицировать и даже просматривать ее текст (только в исключительных случаях). Головной файл приложения Delphi имеет следующую структуру: Program < имя >; {объявление подключаемых модулей, а также локальных типов, классов, констант, переменных, описание локальных функций и переменных} Begin {операторы тела программы} End . Типичная головная программа приложения имеет следующий вид: Program Project 1; Uses Forms, Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2}; {$R *. res} {можно поместить описание констант, переменных, функций, процедур, доступных для использования только в пределах данного файла } Begin Application. Initialize; Application. CreateForm (TForm 1, Form 1); Application. CreateForm (TForm 2, Form 2); Application. Run ; End . 1) Программа начинается с ключевого слова program , после которого указывается имя программы (оно совпадает с именем файла, в котором был сохранен проект). Это же имя присваивается исполняемому файлу приложения. По умолчанию используется имя Project 1. 2) После заголовка в тексте программы располагается предложение: Uses Forms, Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2}; В этом предложении перечисляются модули, загружаемые программой. Первый модуль Forms является системным, а следующие – модулями разработанными самостоятельно форм. Данный пример подразумевает, что в проекте были созданы две формы с именами Form1, Form2 в модулях Unit1, Unit2. Заключенные в фигурные скобки название форм представляют собой комментарии. 3) Следующая строка текста – {$ R *. res } – представляет собой директиву компилятора, связанную с использованием файлов ресурсов. Указанный файл должен быть файлом ресурсов Windows. По умолчанию используется расширение.RES для файлов ресурсов. 4) Первый оператор в теле программы Application . Initialize ; – инициализирует приложение, следующий за ним оператор Application . CreateForm (TForm 1, Form 1); и Application. CreateForm (TForm 2, Form 2); – создают объекты формы1 и формы2, последний оператор Application . Run ; – начинает выполнение приложения. Общая структура файла модуля: Unit < имя модуля >; Interface // Открытый интерфейс модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым будет доступ из других модулей) Implementation // Реализация модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым не будет доступа из других модулей) Initialization // ( Необязательный раздел – операторы выполняются один раз при первом обращении к модулю) Finalization // (Необязательный раздел – операторы выполняются при любом завершении работы модуля) End . Рассмотрим теперь текст модуля с пустой формой: Unit Unit 1; Interface // Открытый интерфейс модуля Uses { Список подключаемых модулей } Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Type {Объявление класса формы} TForm 1 = class ( TForm ) Private // закрытый раздел класса Public // открытый раздел класса End; Var Form 1: TForm1; Implementation // Реализациямодуля {$ R *. dfm } End . 1) Модуль начинается с ключевого слова UNIT , после которого указывается имя модуля. Оно совпадает с именем файла, в котором был сохранен модуль. Текс модуля состоит из двух основных разделов: открытый интерфейс модуля и реализация модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации. 2) После предложения USES , содержащего список подключаемых модулей, располагается заготовка объявления класса формы. Имя класса формы – TForml. Класс содержит два раздела: открытый раздел класса (PUBLIC) – то, что объявлено в этом разделе доступно для других классов и модулей, закрытый раздел класса (PRIVATE) – то, что объявлено в этом разделе доступно в пределах данного модуля. 3) За объявлением класса формы следуют строки: Var Form 1: TForm 1; Таким образом, объявляется переменная Form1 класса TForm1. 4) Затем следует пустой раздел реализации INPLEMENTATION , в котором содержится только директива компилятора {$R *. dfm}, обеспечивающая компоновку файлов ресурсов форм. 4. Некоторые справочные сведения для работы в среде DelphiФайлы проекта Delphi . Проект состоит из форм, модулей, установок параметров проекта, ресурсов и т.д. Вся эта информация размещается в файлах. Многие из этих файлов автоматически создаются Delphi. Ниже приведена характеристика основных файлов, используемых при создании выполняемого файла приложения. Файлы проекта в Delphi, представлены в таблице:
Некоторые встроенные функции и процедуры Delphi . 1) для строковых типов:
Родовым является тип String , который имеет разный смысл в зависимости от директивы компилятора. Если включена директива {$H+} (она включена по умолчанию), то String интерпретируется компилятором как тип AnsiString – длинная строка с нулевым символом в конце. Если же включена директива {$H-}, то String интерпретируется компилятором как тип ShortString – короткая строка без нулевого символа в конце. Если в объявлении типа после ключевого слова String следует число символов в квадратных скобках (например, String[4]), то независимо от директив компилятора, тип трактуется как строка без нулевого символа в конце с указанным числом символов. Стандартная функция LENGTH возвращает число символов в строке, переданной ей в качестве параметра. Процедура SetLength устанавливает длину строки. Процедуры и функции обработки строк:
2) Функции массива:
3) Функции для числовых массивов:
Эти функции определены в модуле math и этот модуль должен подключаться оператором USES, чтобы компилятор их понимал. 4) Процедуры и функции вызова диалоговых окон: В приложениях часто приходится отображать различные простые диалоговые окна, чтобы понять какие-то указания или задать несложный вопрос, на который возможен один из стандартных ответов: да, нет, отменить, прервать. В законченном приложении желательно эти окна проектировать самостоятельно, обеспечивая единство стиля всех окон приложения, русские надписи и т.п. А) простейшей из таких процедур является ShowMessage , отображающая окно сообщения с кнопкой ОК. Она имеет вид: Procedure ShowMessage ( const Msg : string ); Текст сообщения задается параметром Msg. Заголовок окна совпадает с именем выполняемого файла приложения. Б) Похожая процедура ShowMessageFm t, позволяет выводить в аналогичное окно форматированное сообщение. Этапроцедураимеетвид: Procedure ShowMessageFmt (const Msg: string; Params array of const); Параметр Msg в этой процедуре задает строку описания формата, а параметр Params задает массив параметров, форматируемых строкой Msg. Приведем примеры использования этих процедур: ShowMessage (» Работа приложения успешно завершена’); ShowMessageFmt (» Задано% dпараметров из % в ‘, [N1, N2]); Последний оператор при N1=5, N2=7 выдаст сообщение с текстом: «Задано 5 параметров из 7». В) Следующая функция отображает окно, в котором задается вопрос и анализируется полученный ответ – это функция MessageDlg . Она объявляется следующим образом: Function MessageDlg ( const Msg : string ; AType : TMsgDlgType ; AButtons : TMsgDlgButtons ; HelpCtx : Longint ): Word ; Вызов этой функции отображает диалоговое окно и ожидает ответа пользователя. Сообщение в окне задается параметром функции Msg . Вид окна задается параметром AType . Возможные значения параметра:
Параметр AButtons определяет, какие кнопки будут присутствовать в окне. Возможные значения видов кнопок:
Приведем пример использования функции MessageDlg, иллюстрирующий диалог при окончании работы приложения: IfMessageDlg (» Действительно хотите закончить приложение? ‘, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin MessageDlg (» Работаприложениязакончена ‘, mtInformation, [mbOk], 0); Close; End; Первый вызов функции MessageDlg приводит к отображению окна типа mtConfirmation с вопросом о завершении приложения. Если пользователь нажимает кнопку Yes, то выводится второе окно типа mtInformation с сообщением о завершении работы приложения. Заключение В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD – rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени. Delphi такие ограничения не присущи. Хорошее доказательство тому – это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт – журнал Visual Basic Magazine присудил свою премию Delphi for Windows. Руководители предприятий, планирующие выделение средств на приобретение программных продуктов, должны быть уверены в том, что планируемые инвестиции окупятся. Поэтому одним из оцениваемых факторов должен быть вопрос – а легко ли найти специалиста по Delphi и сколько будет стоить его обучение, сколько времени специалист затратит на овладение продуктом. Ответ здесь получить весьма просто – любой программист на паскале способен практически сразу профессионально освоить Delphi. Специалисту, ранее использовавшему другие программные продукты, придется труднее, однако самое первое работающее приложение он сможет написать в течение первого же часа работы на Delphi. И, конечно же, открытая технология Delphi является мощным гарантом того, что инвестиции, сделанные в Delphi, будут сохранены в течение многих лет. Список литературы 1. Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. – М.: ООО «Бином-Пресс», 2006. – 1152 с.: ил. 2. Архангельский А.Я. Программирование в Delphi. – М.: ООО «Бином-Пресс», 2004. – 1152 с.: ил. 3. Гофман В.Э., Хомоненко А.Д. Delphi. Быстрый старт. – СПб: БХВ-Петербург, 2003. – 288 с.: ил. |