Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

Компиляция   Найти похожие ветки 

 
Arkady   (2002-09-05 11:43) [0]

Delphi компилирует не все строки исходного кода. Как включить компиляцию всех строк?


 
Виктор Щербаков   (2002-09-05 11:48) [1]

Delphi компилирует все строки, которые расположены до
end.


 
Anatoly Podgoretsky   (2002-09-05 11:54) [2]

И это абсолютно верно, некоторые версии и после end.


 
PVOzerski   (2002-09-05 11:54) [3]

Если речь не идет о баге в компиляторе (и не о закомментированном коде :^) ), не компилируются те куски, которым ни при каких обстоятельствах не передаётся управление (но синтаксический контроль всё равно делается). Если Вы рассчитываете впоследствии задействовать эти куски, можете рассчитывать, что они скомпилируются. Если же хотите сохранить их в коде из иных соображений (например, как сигнатуру), обеспечьте хотя бы фиктивное их использование - например, вызов при реально невыполнимом условии)


 
Виктор Щербаков   (2002-09-05 11:59) [4]

Arkady © (05.09.02 11:43)
Из-за оптимизации бывает так, что не на всех строках исходного кода возможно установить breakpoint. Например, при присваивании переменным нигде далее не используемых значений.
Однако, компилятор обрабатывает и эти строки, но впоследствии выкидывает их за ненадобностью.


 
Arkady   (2002-09-05 12:23) [5]

Привожу кусок кода из моей программы:

ttt1:="d:\out\test"+inttostr(ndoc);
ndoc:=ndoc+1;
// ttt2:=ndoc;

form1.Refresh;
ttt2:=1;
WordApp.Documents.Item(ttt2).SaveAs(ttt1, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);


Ситуация такова: команда ndoc:=ndoc+1; не компилируется, но если убрать комментарии, т.е. включить в код ttt2:=ndoc, то все нормально. Почему? Виной тому WordApp?



 
ЮЮ   (2002-09-05 12:26) [6]

Виной тому, что ndoc больше не используется, хоть 1 прибавь, хоть 1000000 - результат тот же :-)


 
Виктор Щербаков   (2002-09-05 12:27) [7]

Как раз то, о чем я говорил. Компилируется, конечно, всё.
Но в случае с закоментаренной ttt2:=ndoc, значение переменной ndoc, измененное предыдущей строчкой нигде не используется, следовательно компилятору нет смысла генерировать для нее код.


 
Arkady   (2002-09-05 12:49) [8]

ttt2:=ndoc используется:
ttt1:="d:\out\test"+inttostr(ndoc);
ndoc:=ndoc+1;
// ttt2:=ndoc;

form1.Refresh;
ttt2:=1;
WordApp.Documents.Item( ttt2).SaveAs(ttt1, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);

Но:
Прошу прощения! Данный кусок находится в цикле, в начале которого ndoc присваивается значение 1. То бишь ndoc:=ndoc+1 абсолютно бесполезна :-).



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

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

Наверх





Память: 0.46 MB
Время: 0.013 c
6-50893
BOL
2002-07-03 16:20
2002.09.16
Рассылка большого количества писем по разным адресам


1-50724
Гончий
2002-09-05 10:24
2002.09.16
Как сделать программу Trial ?


3-50590
progger
2002-08-25 10:44
2002.09.16
Помогите с Query


6-50891
boogier
2002-07-12 11:26
2002.09.16
TNMPOP3 - как получить прикрепленный файл?


3-50659
wed
2002-08-26 12:40
2002.09.16
MSSQL server 2000





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский