Эта статья предназначена для программистов нашей студии, все еще сидящих на Delphi. Но, в принципе, ею может воспользоваться каждый. Ведь перейти с Delphi на Borland C++ Builder гораздо легче, чем может показаться сначала. Однако, если в будущем вы хотите работать программистом, то, скорее всего, вы будете работать или с MicroSoft Visual C++, или с C#. А с BCB перейти на эти программы гораздо легче, чем с Delphi.
Итак, сначала надо усвоить то, что в принципе, 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.
Теперь о массивах. Они объявляютя так:
Как видите, "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, и я постараюсь вам помочь.