1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
||||||
1 | ||||||
условная компиляция29.04.2012, 14:56. Показов 2630. Ответов 9
Метки нет (Все метки)
Заранее спасибо.
0
|
29.04.2012, 14:56 | |
Ответы с готовыми решениями:
9
Что такое условная компиляция Пропускается условная конструкция Без условная переадресация Условная компиляция |
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
|
|
29.04.2012, 15:31 | 2 |
Да, Светлана Семененко отдыхает !..
Это все равно, что спрашивать: "А что делает этот код: if A = 0 then B := 1 else B := -1; "
0
|
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
|
29.04.2012, 20:47 [ТС] | 3 |
Сообщение от vpanasenko
0
|
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
|
29.04.2012, 21:00 [ТС] | 4 |
Ответили ....
Здесь условная компиляция значит, что если, например, лексема RWPort определена (с помощью {$define RWPort}), то код между директивами {$ifdef RWPort} и {$endif} скомпилируется, а если нет - значит в программе он будет отсутствовать, как буддто его и не было вовсе. Про {$else} ты наверное сам догадаешься. А ассемблерный код делает вот что: 1. сохраняет в стеке содержимое регистров edx и eax 2. помещает в регистр dx (версия edx для 16 бит) значение p, в регистр al (eax для 8 бит) 3. отправляет на порт, 16-битное значение которого находится в регистре dx, значение, находящееся в регистре al. восстанавливает значения регистров edx и eax. Ассемблер надо учить, батенька!!! Да и теорию по Delphi тоже. (Я об условной компиляции и методах отладки приложений)
0
|
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
|
29.04.2012, 23:51 [ТС] | 5 |
К примеру кнопка на форме. И код в ней.
procedure TForm1.Button1Click(Sender: TObject); begin {$IFDEF debug} ShowMessage('sdsd'); {$ENDIF} end; Что нужно сделать, чтобы ShowMessage('sdsd'); сработало? Я в этом языке несколько дней. Не серчайте на меня ответьте пожалуйста. Куда зайти?
0
|
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
|
|
30.04.2012, 10:02 | 6 |
Я знаю, что такое условная компиляция еще со времен Turbo Pascal. Так, что, не надо ля-ля.
{$DEFINE DEBUG} - все, что нужно для вызова ShowMessage('sdsd'). Точнее, для того, чтобы компилятор включил вызов этой процедуры в код.
0
|
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
|
30.04.2012, 16:50 [ТС] | 7 |
Сообщение от vpanasenko
Конкретнее можете сказать куда {$DEFINE DEBUG} вставить? Может в RunParameters? Может какое-то место в коде? Ё моё!
0
|
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
|
||||||
30.04.2012, 18:13 | 8 | |||||
Ну, компилируется код, а не параметры. Термин звучит как "условная компиляция". Я думаю, что в коде.:-))
0
|
1 / 1 / 0
Регистрация: 17.02.2010
Сообщений: 131
|
|
30.04.2012, 19:25 [ТС] | 9 |
Длин. Всё понятно, только не понятно куда вставить чтобы весь проект принял.
Весь модуль видит: unit main; {$DEFINE CLX} {$IF Defined(CLX)} ShowMessage('hjkhjkk'); {$ELSE} ShowMessage('111'); {$IFEND} А второй модуль уже мохает. Там опять придётся объявлять. {$DEFINE CLX} А как объявить для всего проекта? Заранее спасибо.
0
|
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
|
|
01.05.2012, 09:51 | 10 |
Обычно DEFINE выносят в отдельный файл и включают его В КАЖДЫЙ МОДУЛЬ
unit unit1; {$I DEFINE.INC} а в DEFINE.INC пишем {$DEFINE DEBUG} {$DEFINE MY_DEFINE} {$UNDEF MY_DEFINE1} Можно еще определить через меню IDE: Project-Options-Derectory/Conditionals-Conditionals
0
|
01.05.2012, 09:51 | |
01.05.2012, 09:51 | |
Помогаю со студенческими работами здесь
10
Условная компиляция Условная компиляция Условная компиляция Условная компиляция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |