Sign in Join
Wiki copytemporary

Code Conversion Guide/ru: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Портирование кода из Delphi на FreePascal/Lazarus
22
33**Добавьте в начало модуля следующую строчку:**
44
55``` pascal
66 {$ifdef FPC}{$mode delphi}{$endif}
77```
88
99FPC поддерживает синтаксис Delphi, но, по-умолчанию, использует использует свой собственный *fpc*. Lazarus, по-умолчанию использует синтаксис *objfpc* для нового проекта. Указанная выше строчка указывает, что при компиляции данного модуля необходимо использовать синтаксис Delphi.
1010
1111Если модулей очень много, то проще переключить синтаксис для всего проекта:
1212
1313если вы используете только FPC компилятор, используя параметр командной строки:
1414
15-` -Mdelphi`
15+```
16+ -Mdelphi
17+```
1618
1719если вы используете Lazarus, поменяйте свойство проекта:
1820
19-`(англ) Project -> Project Options... -> Compiler Options -> Parsing -> Syntax mode -> Delphi.`\
20-`(рус) Проект -> Параметры проекта... -> Параметры компилятора -> Обработка -> Режим синтаксиса -> Delphi`
21+```
22+(англ) Project -> Project Options... -> Compiler Options -> Parsing -> Syntax mode -> Delphi.
23+(рус) Проект -> Параметры проекта... -> Параметры компилятора -> Обработка -> Режим синтаксиса -> Delphi
24+```
2125
2226Использование Delphi синтаксиса поможет избежать "непонятных" ошибок компилятора, таком коде как:
2327
2428``` pascal
2529 var
2630 NE : TNotifyEvent;
2731
2832 procedure TForm1.Notify(Sender: TObject);
2933 begin
3034 // do something
3135 end;
3236
3337 ...
3438 begin
3539 NE := Form1.Notify; // без использования Delphi синтаксиса, строчка вызывает ошибку
3640
3741 // для синтаксиса FPC, строчка должна выглядеть так:
3842 // NE := @Form1.Notify;
3943 end.
4044```
4145
4246Использование синтаксиса Delphi при компиляции с помощью FPC, позволяет компилировать одни и те же модули с помощью обоих компиляторов (FPC/Delphi) без дополнительных исправлений.
4347
4448---
4549*From the Free Pascal wiki, page "Code Conversion Guide/ru", as it stood on 2019-08-02 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
4650Category: Russian (unfinished translation)

Back to history