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

Вниз

Delphi пропускает строки кода при компиляции   Найти похожие ветки 

 
just ©   (2006-07-07 09:55) [0]

Добрый день.
 Не первый раз сталкиваюсь с ошибкой, Delphi пропускает строки кода при компиляции.
 Например:
begin
ModalResult:=mrOk;
exit;
end;
рядом с exit не ставится синяя точка, при выполнении форма не закрывается и при отладке строка пропускается :(
 Почему это происходит и как это вылечить?


 
PSPF2003 ©   (2006-07-07 10:04) [1]

А ты не чего не путаешь? А то обычно по напишут типа:

Begin
exit;
ModalResult:=mrOk;
end;

или в цикле

сначала пишут бряк а потом выполнение действия


 
DrPass ©   (2006-07-07 10:08) [2]


> Почему это происходит и как это вылечить?

Включен оптимизатор кода. На время отладки его стоит выключить (Project Options - Compiler - Optimization), и снова включить перед финальной сборкой


 
DrPass ©   (2006-07-07 10:09) [3]

Вдогонку:

> при выполнении форма не закрывается

Конкрентно это уже не связано с оптимизатором, а только с кривым кодом :)


 
ЮЮ ©   (2006-07-07 10:11) [4]

>рядом с exit не ставится синяя точка
На exit, ИМНО, она никогда не станет? Поставь на предыдущую.


 
Чапаев ©   (2006-07-07 10:23) [5]

exit там лишний. А вообще закрой проект, удали из его папки *.dsk и открой снова.


 
PSPF2003 ©   (2006-07-07 10:41) [6]


> exit там лишний. А вообще закрой проект, удали из его папки
> *.dsk и открой снова.

Ага удали проект, удали Делфи, и не суйся в программисты? :)


 
Desdechado ©   (2006-07-07 10:44) [7]

begin
ModalResult:=mrOk;
exit;
end;

Если это все содержимое процедуры, то exit смысла не имеет, о чем оптимизатор хорошо знает и выкидывает.


 
Чапаев ©   (2006-07-07 11:01) [8]


> > exit там лишний. А вообще закрой проект, удали из его
> папки
> > *.dsk и открой снова.
> Ага удали проект, удали Делфи, и не суйся в программисты?
>  :)

Зря хихикаешь. *.dsk таки обычно ответственны за неправильную расстановку "синих точек". Особенно часто такие пакости случаются при переносе проекта в другой каталог...


 
Суслик ©   (2006-07-10 02:30) [9]

отключи оптимизацию и сделай полный билд - может поможет.


 
just ©   (2006-07-11 07:03) [10]

отключение оптимизатора кода не помогло :(
почему вы считаете, что в процедуре не надо писать exit? как форма узнает, что ей надо закрыться?
кстати, когда-то это место нормально обрабатывалось...


 
KilkennyCat ©   (2006-07-11 07:09) [11]

> как форма узнает, что ей надо закрыться?

Этим и узнает:
ModalResult:=mrOk;

Вопрос абсолютно и полно и доходчиво и т.д. написан в справке Делфи...


 
just ©   (2006-07-11 07:35) [12]

всем спасибо. убрал exit. все работает!
но все равно, были ситуации когда такое было при определении переменных...


 
evvcom ©   (2006-07-11 08:31) [13]

> убрал exit. все работает!

что же у тебя не работало? exit в твоем коде ни на что не влиял. С ним не работало, а без него заработало? :)

> почему вы считаете, что в процедуре не надо писать exit?
> как форма узнает, что ей надо закрыться?

в этой не надо, где-то в другой, возможно, и надо. Но exit говорит не о том, что форма должна закрыться, а том, что здесь пора выходить из процедуры/функции. Exit - это конструкция языка и работает в любом методе/процедуре/функции не зависимо от принадлежности к классу формы. А для закрытия формы есть метод класса Close, как ни странно.


 
IceBeerg ©   (2006-07-11 13:52) [14]

evvcom ©   (11.07.06 8:31) [13]
А для закрытия формы есть метод класса Close, как ни странно.

Но тут наверное всеже стоит использовать Hide, если конечно форма после не уничтожается и еще используется.


 
Плохиш ©   (2006-07-11 13:57) [15]


> А для закрытия формы есть метод класса Close, как ни странно.

Явный вызов Close для модальной формы устанавливает свойство ModalResult в mrCancel. Это так предупреждение ;-)


 
Суслик ©   (2006-07-11 22:15) [16]

вот еще один недовольный оптимизатором http://qc.borland.com/wc/qcmain.aspx?d=29160

:)



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

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

Наверх




Память: 0.48 MB
Время: 0.039 c
15-1154429606
Сергей М.
2006-08-01 14:53
2006.08.27
Win32-дебагер для Win16-приложений


2-1154332057
Gamer
2006-07-31 11:47
2006.08.27
Перенести информацию (с картинками) с двух RichEdit ов в один


1-1153124673
serg_iv
2006-07-17 12:24
2006.08.27
системное сообщение о выделении текста


2-1155146390
ArtemESC
2006-08-09 21:59
2006.08.27
Окаймление компонентна


15-1154067265
Layner
2006-07-28 10:14
2006.08.27
Как в 2000/2003 включить логирование входов/выходов юзеров





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