| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как узнать обьект?, Как узнать обьект? Вопрос о TThread, Одновременные процессы TAction - несколько горячих клавиш TAction - области "видимости" Совместная разработка приложений, Какое лучше использовать средство? Разрушение компонента ПОМОГИТЕ плз, Языки программирования ПОМОГИТЕ , ПОЖАЛУЙСТА, КАК ЧЕРЕЗ ПАСКАЛЬ УПРАВЛЯТЬ ПОРТОМ Edit на MainMenu, как разместить Смена шрифтов в редакторе Делфи, надоел Courier New Из чего сделаны типы, на мето языках??? Сколько работала программа? Debug Dll, Как отдебажить библиотеку сканирование файла как сделать taskbar прозрачным? (-) Как узнать размер директории?, Может быть есть отдельная функция? Как выйти из for цикла? Вращения эллипса вокруг точки, Вращения эллипса вокруг точки Языки и раскладки..., Где найти раскладки разных языков? О разных версиях операционных систем! COM порт, слежение Помогите перекодировать Crystal Reports 8.5 О локалке! Как Вы относитесь к курящим девушкам? Вопрос по поводу свернуть прогу в system tray, подскажите! Мистика в компиляторе Delphi JPEG в BLOB, Есть необходимость хранить JPEG в BLOB Указатель на поле записи, Как сделать? О сохранении иконки, Не могу добиться сохранения иконки Delphi+Excel, Решение задач линейного программирования Представление строк Как отследить с какими парамами запущен процесс Прямые преобразования, RTTI Присвоение события в run-time Функция TypeInfo, Опять объектное ориентирование... Объявить класс в DLL? Работа с объектами в DLL Вызов методов предков, Вопрос по объектному ориентированию... Помогите плиз!!! Вызов BPL Операторы As, Is Предлагаю решение как сохранить иконку 256 цветов, Сохранение 256-цветной иконки программа в виде справки А можно ли высоту TComboBox сделать менее 21. Спаренные кнопки !!!, Как изменять величину на нецелое значени Грызуны, Скрытные грызуны По поводу *.dcu В чем ошибка? Поиск окон, Z-order Замена названия окон Читаем значение реестра с помощью RegOpenKeyEx. Снова не могу поймать MM_MCINOTIFY. Delphi между Excel и Oracle8i, Проблема Ошибка в функции..., Хелп ID Процесса Как переключить в RichEdit Charset?, Как в программе на Дельфи изменит CharSe WinAmp Директивы вызовов функций, Может кто объяснит обход дерева Ссылка на MDI окно, Как сделать чтобы фрма предавалась в про Com-port, чтение - запись Управление OpenOffice (StarOffice) из Delphi Delphi and DBF Ошибка соединения с сервером Как вывести диалоги свойств следующих вещей: Обработка нажатия мыши Delphi6: 1251 -> 866 - как?, :-) - не нашел по этой теме! FindComponent, Проблема использования Hook, запретить что-нть. |
Платные хостинги Раскрутка сайта Книги по программированию Как выйти из for цикла?
- Думал, что смогу отделаться через last, так не получилось - break - Exit совершает ничто иное как безусловный переход в конец процедуры (jmp end;) т.е. выход из неё.Код procedure TForm1.Button1Click(Sender: TObject);begin Exit; ShowMessage ('This will never happen!');end;highlightSyntax('delphiDBhMmE','delphi'); - Если вызов Exit производится внутри цикла, то компилятор автоматически сначала подставляет Break.Если вызов Exit идёт и блока try .. finally .. end то компилятор автоматически подставляет AbortТак что не всё так безусловно. - Буду знать...а переход и в том и в другом случае делается безусловный - procedure TForm1.Button1Click(Sender: TObject);begin while true do begin ShowMessage ('Test'); Exit; end; ShowMessage ('This will never happen');end;А какая разница? Попробуй вместо Exit поставить break... Exit - это выход из процедуры без каких либо подставлений... Как проверить? смотрим код: jmp +$0aА куда это мы прыгаем? правильно, прямо на ret в обход последней функции...Так что все таки это безусловный выход из процедуры. - Нет, здесь вызов выхода из текущей обработки и выход обрабатывается одноврменно, через стёк т.е. через трассировку или подставкой чего-нить в код Вы не проверите, поэтому придется мне поверить на слово , т.е. на самом деле Break выполняется однако управление на ShowMessage() не передастся, так запрограммировано. - Вобщем, так или иначе, если мы хотим, чтобы все, что идет после цикла выполнилось Exit никак не подходит - Вообще Паскаль задумывался как строгий, структурный язык. Соответственно, всякие вольности типа выхода из процедуры в любой точке и произвольное прекращение цикла в нем не допускаются... В Дельфях можт уже все испортили, не знаю... А вообще в данном случае классика - замена for на while. Еще можно попробовать принудительно переменную цикла увеличить до верхней границы. На крайняк goto... - 1) Exit и Break появились в Turbo Pascal (не то в 6.0, не то в 7.0)2) На чистом Паскале можно программировать наверное лишь чистую математику, да простейшие cgi. В связи с полным отсутствием интерфейса, экспорта функций, объектов и т.п. использование чистого классического Паскаля практически невозможно.3) В настоящее время существует лишь одна распространённая реализация Паскаль сделанная Борландом (только не надо говорить что есть еще много - есть то они есть, да пользователей их пренебрежительно мало), следовательно стандарт Паскаля De Facto определяют версии от Borland (точно так же как Basic определяется MS) - 2 Ampersand, вообщето break (выход из цикла) и exit (выход из процедуры/функции) идут из старого доброго паскаля и я рад, что никто ничего НЕ испортил и НЕ выкинул их из Object Pascal. И давайте не будем вспоминать про goto - Нет, не идут! В спецификации Паскаля их нет. Они появились, как я уже говорил, в Tp6 (это примерно 1993 год), до этого их ни в одной реализации вообще не было. А так называемый Object Pascal появился примерно тогда-же в том же TP6 c появлением Turbo Vision, ни в стандарте Паскаля, ни в одной реализации Паскаля до того никаких объектов вообще не было. Добавление объектов и разработка спецификации Object Pascal целиком заслуга Борланд, другие реализации Object Pascal появились только лет через 5 после Object Pascal от Борланд и практически базировались на последнем. - Моя версия Tp7Ну уж никак не <=Tp5 :-) - Это точно, в TP5.5 абсолютно точно не было ни объектов, ни exit, ни break (только Halt был для любителей ) |