Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

Можно ли в Паскале создавать макроподстановки? 


kserg@ukr.net   (2002-04-10 17:12) [0]

спасибо



CyberStorm   (2002-04-10 17:52) [1]

директива {$I <имя файла>} "вставляет" код из заданного файла, кажется это наиболее похожая на макросы функциональность



Андрей Сенченко   (2002-04-10 18:03) [2]


$I: Input/Output-Checking Switch ___________________________________
Enables or disables the automatic code
generation that checks the result of a call to
an I/O procedure.

Syntax: {$I+} or {$I-}
Default: {$I+}
Type: Local
Menu Command: Options|Compiler|I/O Checking

Remarks:
If an I/O procedure returns a non-zero I/O
result when the $I switch is on, the program
terminates, displaying a run-time error
message.

When the $I switch is off, you must use the
IOResult function to check for I/O errors.

See Also:
$I FileName

$I: Include File Directive _____________________________
Instructs the compiler to include the named
file in the compilation.

Syntax: {$I FileName}
Type: Local

Remarks:
The default extension for FileName is .PAS.


.. Там есть еще продолжение ...
Но собственно мысль сводится к тому, что это ближе отнюдь не макроподстановке, а скорее работе с UNIT-ом.
Возможно, я ошибаюсь - тогда поправьте, но я полагаю, что данная возможность реализуема лишь на этапе компиляции и в готовой программе изменение кода внешнего файла ни к чему не приведет.



PVOzerski   (2002-04-10 18:06) [3]

2CyberStorm: это всё-таки не совсем то. Хотя в "Королевстве Delphi" есть материал, как с помощью
{$i} создавать аж шаблоны классов в Delphi. Настоящие макроподстановки есть во FreePascal, да и то
в ограниченном виде: без поддержки параметров. Но кое-что полезное делать всё-таки можно.
Например:

{$macro on}
{$define sysapi:=stdcall;external "user32.dll" name}
function MessageBox(x:longint;y,z:pchar;w:longint):longint;sysapi "MessageBoxA";

А в Delphi ничего подобного я не знаю...



CyberStorm   (2002-04-10 21:59) [4]

По идее эта директива {$I <имя файла>}на этапе компиляции, как-бы "вставляет" содержимое текстового файла в текст модуля раздвигая строки ниже себя.
Блин... ну я и загнул фразу :-), просто дело ближе к ночи, голова плохо соображает...
А так, действительно, в Pascal и Object Pascal (я имею ввиду Borland-овские) отсутствует работа с макросами. Хотя хуже от этого или лучше трудно судить, многим программистам на C, к примеру, не нравятся макросы - они затрудняют работу с большим проектом. Хотя мое IMHO - это дело привычки (вкуса) :-))




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.025 c
1-69792           lipskiy               2002-04-09 23:36  2002.04.22  
Как перекрыть стандартные цвета виндов?


3-69758           nicolaus              2002-04-02 10:27  2002.04.22  
DBGrid Scroll ??? Как управлять скролом самостоятельно.


3-69713           oss                   2002-03-29 12:03  2002.04.22  
ADO login в mssql как ?


1-69776           SVM                   2002-04-10 10:09  2002.04.22  
Delphi 1


6-69942           Davile                2002-02-07 15:56  2002.04.22  
TClientSocket