![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Версия Delphi 2005
· Среда разработки теперь имеет интерфейс MDI; модифицировалось также окно «что нового» - теперь это полноценная приветственная страничка. · Перевести интерфейс в традиционный SDI вид можно следующим образом: Tools/Options/Environment Options/Delphi Options/VCL Designer/ Options/Embedded designer. · Палитра компонентов теперь размещена внизу справа, при переключении между формой и редактором кода палитра автоматически меняется. · В Project Manager теперь встроены закладки Model View и Data Explorer. · Можно вырезать кусок кода и автоматически оформить его как метод или процедуру. · Можно объявлять переменные или поля класса на ходу (напишите в любом месте кода имя переменной, затем выбрать команду Refactoring/Declare variable из контекстного меню). · Возможность поиска локальных и глобальных ссылок на объект, поиск объявления объекта. · Автокомментирование строки клавишами «Ctrl+/». · Можно свернуть любой блок кода секции Unit, описания класса, текста процедур, функций и т.д. · Изменена справочная система. Теперь она имеет интерфейс, схожий с интерфейсом справочной системы Windows XP. · У компилятора Delphi появилась возможность использовать Inline‑ кода. Теперь, если процедура или функция имеют директиву Inline, это заставит компилятор попытаться вставить в место, где эта процедура используется, не вызов, а код тела процедуры. · Для компилятора Delphi for.Net добавлена возможность включения потенциально небезопасного кода в приложения.Net. · Появилась возможность использовать в именах типов и переменных символы Unicode. · Изменилась работа с точками останова. Появилась возможность, не удаляя саму точку, отключить ее, пометив Disable. · В среду интегрирован новый Data Explorer, который содержит как средства просмотра БД, так и ряд инструментов для редактирования.
Глава 6. C++ Builder С++Builder ‑ это Delphi, в котором Delphi (Паскаль) заменен на C++ [6]. Язык С [3] был разработан в 1972 г. сотрудником фирмы AT& T Bell Laboratories Деннисом Ритчи в рамках проекта создания операционной системы Unix. В настоящее время он является универсальным языком программирования общесистемных программных средств (операционных и сетевых систем, СУБД, текстовых, табличных и графических редакторов и др.) и прикладных задач. Современной версией языка С является C++ (автор - Б. Страуструп) [6]. Язык С является подмножеством C++. Допускается создание консольного приложения (командой File/ New/Console Wizard). Это приложение выполняется под управлением DOS и позволяет использовать функции непосредственного ввода (scanf) и вывода (printf) данных на консоль, не используя визуальные средства. Это позволяет в десятки раз уменьшить размер исполняемого Exe-файла и использовать в С++ Builder программы, написанные ранее на языке С или C++, которые выполнялись под DOS. Для консольного приложения обычно требуются директивы: #include < stdio.h> // подключение модуля стандартного ввод-вывода #include < conio.h> // подключение модуля ввод-вывода на консоль #include < stdlib.h> // стандартная библиотека общего назначения #include < fstream.h> // стандартная библиотека ввода-вывода потоков в С++ Большинство приведенных в этой главе примеров оформлены в виде консольных приложений. Их можно легко изменить и перевести в обычные приложения (например, оформить в виде функции обработки события Click нажатия кнопки Button), заменив вывод функцией printf на вывод в метку Label или в массив строк объекта Memo (Memo1-> Lines-> Add(str)), функцию ввода scanf ‑ на ввод из полей Edit и удалить функцию задержки работы программы getch.
Для быстрого освоения и перехода из Delphi в C++ Builder и обратно приведем основные общие черты и различия между ними. Основные общие черты C++ Builder и Delphi · Единая библиотека визуальных компонентов (VCL) с одинаковым набором и обозначениями компонентов, их свойств, методов и событий. · Практически одинаковая технология и единая визуальная среда быстрой разработки приложений. · много одинаковых функций (например, преобразования данных). Основные отличия C++ Builder от Delphi · Используются различные языки C++ и Delphi соответственно. · Прописные и строчные буквы в С++ различаются, что требует от пользователя соблюдения регистров при написании идентификаторов. · Для функций без параметром указываются круглые скобки. · Свойствам Caption и Text можно присваивать текстовые, числовые и датные значения, а не обязательно только текстовые, как в Delphi. · Операторы присваивания и сравнения на равенство записываются в виде одного и двух знаков равенства, соответственно, вместо «: =«и «=«. · Символьные константы заключаются в кавычки (fam=«Иванов»). · Директивы компиляции задаются в виде #pragma < значение>. · Для ссылки на объект, созданный из компонента VCL используется не точка, а косвенная ссылка в виде стрелочки из двух символов («-> «) или прямая ссылка в виде (* < имя объекта> ). Пример: Button1-> Caption=«Выход» или (*Button1).Caption=«Выход» · Для включения в приложение модуля требуется выполнение команды File/Include Unit.... · Условные выражения в командах if, while, switch заключаются в круглые скобки и логические операции имеют меньший приоритет, чем операции сравнения. · Оператор присоединения With отсутствует. · Можно использовать библиотеку фундаментальных классов MFC. · Используя ключевое слово as, в Delphi можно написать: procedure TForm1.Button1Click(Sender: TObject); begin with Sender as TButton do Caption: ='Выход'; end. · Слова as нет в C++ Builder, но есть оператор динамического преобразования типа dynamic_cast, который не связан с исключениями. Используя его, можно записать последний пример в C++ Builder в виде: void __fastcall TForm1:: Button1Click(TObject *Sender) // знак:: см. в п. 6.6.1 { TButton* Button=dynamic_cast < TButton*> (Sender); if (Button) Button1-> Caption=«Выход»; }
|