Форум: "Основная";
Текущий архив: 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