Добро пожаловать на сайт UpperHead! Здесь Вы найдёте игры, софт, статьи и многое другое!
 
     

Сделать стартовой    Добавить в избранное    Написать хозяину

Гостевая книга    На главную    Web-мастер

 

Быстрый переход с
Delphi на Borland C++ Builder

Эта статья предназначена для программистов нашей студии, все еще сидящих на Delphi. Но, в принципе, ею может воспользоваться каждый. Ведь перейти с Delphi на Borland C++ Builder гораздо легче, чем может показаться сначала. Однако, если в будущем вы хотите работать программистом, то, скорее всего, вы будете работать или с MicroSoft Visual C++, или с C#. А с BCB перейти на эти программы гораздо легче, чем с Delphi.
     
     
  Гостевая
  Игры
  Софт
  Статьи
  Для сильных нервами
  РАЗНОЕ
  Юмор
  Ссылки
  Наши баннеры
  !!! Форум !!!
  M@il
 
 

   Итак, сначала надо усвоить то, что в принципе, BCB от Delphi отличается только самыми главными операторами и синтаксисом. Конечно, есть еще некоторые ньюансы, но они описаны ниже. Вот один из них: язык С++ вообще сам по себе чувствителен к регистру. То есть, переменные А и а - это две совершенно разные переменные. Так что будьте внимательны.
   Во-первых, структура файлов. В принципе, она мало чем отличается от Delphi - тот же самый файл проекта ( только с расширением .bcb), тотчно такой же файл формы (с тем же расширением). Только вместо .PAS - файла, .CPP, к которому добавлен заголовочный файл - .h . В нем, в принципе, то же самое, что и в заголовке PAS - файла: обьявления классов, типов, переменных, и т.п.    Кстати, о переменных. Они отличаются от Delphi тем, что их можно обьявлять в ЛЮБОМ месте програмного кода, и тут же (кроме заголовочного файла) указывать их значение. Далее следует таблица типов переменных.Объявляются переменные так:
TIP_PER nazvanie_peremennoy = znachenie_esli_nado;

Название типа Значение Обьявление
Integer -2147483648...2147483647 int
Char -128...127 char
Short Integer -32768...32767 short int
Long Integer -2147483648...2147483647 long
Unsigned Char 0...255 unsigned char
Unsigned Short Integer 0...65535 unsigned short
Unsigned Integer 0...42949672957 unsigned int
Unsigned Long Integer 0...42949672957 unsigned long
Float 1,18?10(-38)...3,4*10(38) float
Double Float 2,23?10(-308)...1,79*10(308) double
Long Double float 3,37?10(-4932)...1,18*10(4932) long double
Char символ char
AnsiChar символ AnsiChar
Boolean true/false bool
boolean
ByteBool
Short AnsiString строка 255 символов ShortString
AnsiString строка 2в(31) символов AnsiString
Wide AnsiString строка 2в(30) символов WideString
Variant абсолютно любое значение(настандартный тип) Variant
Если вы заметили, то в типе Boolean несколько видов объявления. Просто они абсолютно ничем не отличаются, но обычно всегда используют bool.
Теперь о массивах. Они объявляютя так:

TIP_MASSIVA nazvanie[4] = {znachenie, esli, eto, nado};

Как видите, "4" - это количество элементов массива, а в фигурных скобках - значения каждого элемента массива, по очереди. Так же бывют многомерные массивы, например:

int a[2][3]

В это массиве две ячейки по три значения. Можно делать массивы еще многомерней, но так очень легко запутаться самому. Работать с массивами проще простого:

a[0][4] = 90;

Вот так!

Еще бывает такая вещь, как структура. Это очень похоже на собственный тип. Пример структуры:

struct nazvanie{TIP1 nazv; TIP2 nazv2};
nazvanie a; //обьявляю переменную типа структуры
a.nazv = 4;
a.nazv2 = 5;


Так это и работает. Кстати, я забыл назвать самое основное отличие между Delphi и BCB - в BCB вместо точек обычно стоит "->". Почему? Дело в том, что в С++ такой знак стоит, когда используется ссылка на объект - например, ширина формы - это не конкретный объект, а только свойство, на которое нужна ссылка:

Form1->Weight = 50; вместо Form1.Weight := 50;

Однако, спросите вы, ведь в структуре была использована точка? Да, потому что это - не указатель, а прямой обьект, или его свойство. Другой такой же пример:

Mouse->Position.X; ,а на дельфи - Mouse.Position.X.

Дельфи это упускает из виду, и заставляет везде ставить точки. А теперь, когда основное я объяснил, таблица, показывающая, как отличается синтаксис этих двух программ.

Операция Delphi Borland C++ Builder
Начало блока begin {
Конец блока end }
Присвоение a:=b =
Равно if a=b then... if(a==b)...
Не равно if a<>b then... if(a!=b)...
Целочисленное деление c=a div b int c=a/b
Остаток от деления d=a mod b r=a%b
Логическое И if (a and b) then... if(a&&b)...
Логическое ИЛИ if (a or b) then... if(a||b)...
Исключающее ИЛИ if (a xor b) then... if(a^b)...
Конъюнкция a and 4 a&4
Дизъюнкция a or 4 a|4
Исключающее ИЛИ a xor 4 a^4
Сдвиг вправо a shr 4 a>>4
Сдвиг влево a shl 4 a<<4

   Теперь посмотрите таблицы, показывающущие разницы в оперторах.
Операция Delphi Borland C++ Builder
Оператор условия if a>b then begin
...
end else ...;
if(a>b)
{
...;
} else...;
   Как и в Delphi, в BCB фигурные скобки в if могут так же легко убираться, как и begin и end. Главное отличие - то, что в BCB обязательно надо ставить скобки вокруг условия.

Операция Delphi Borland C++ Builder
Оператор выбора case ZNAK of
'+': begin z:=x+y; end;
'-': begin z:=x-y; end;
else z:=x*y;
end;
switch(ZNAK)
{
case '+': z=x+y; break;
case '-': z=x-y; break;
default: z=x*y;
}
   Как вы видите, отличаются они не очень сильно.

Операция Delphi Borland C++ Builder
Цикл FOR(вверх) for i:=1 to 10 do sum:=sum+i for(i=1;i<=10;i++) sum=sum+i
Цикл FOR(вниз) for i:=1 downto 10 do sum:=sum+i for(i=1;i>=10;i--) sum=sum+i
   В результате, в BCB гибкость этого оператора сильно увеличивается.

Это были самые основные операторы. В принципе, все остальное точно такое же, как в Delphi. "Ctrl+Пробел" так же исправно работает. Но на всякой случай советую закачать исходники моего "кулькурятора":) с комментариями. Ну, а если возникнул вопросы, обращайтесь на мой e-mail: UpperHead@mail.ru, и я постараюсь вам помочь.

СКАЧАТЬ ИСХОДНИКИ К СТАТЬЕ

В статье были использованы материалы из книги Елены Кондратюк "С++: Трюки и Эффекты", 2006 г., Издательский Дом "Питер".