Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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 - это дело привычки (вкуса) :-))



Страницы: 1 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.007 c
1-69826
DeMoN-777
2002-04-09 19:04
2002.04.22
Поиск в ListBox


1-69860
BorisMor
2002-04-08 17:46
2002.04.22
Передача пути.


3-69738
Potok
2002-04-02 05:43
2002.04.22
Данные


1-69788
Vova33
2002-04-10 11:01
2002.04.22
Общий вопрос..


1-69763
Bodia
2002-04-06 05:52
2002.04.22
Как сделать такую весчь?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский