Главная страница
    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.006 c
1-69883
pls
2002-04-08 11:24
2002.04.22
DLL или BPL?


1-69894
ghost_by
2002-04-09 13:38
2002.04.22
Размеры TMenuItem?


3-69656
Артём
2002-04-02 19:42
2002.04.22
Вопрос по триггерам


1-69831
oomneeq
2002-04-10 18:39
2002.04.22
MRU List открывавшихся проектов в IDE


1-69823
ProNix
2002-04-10 15:02
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский