| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Проблема с описанием процедуры. |
| Автор: Pakshin A. S. 31.10.2003, 21:23 | ||||
Пишу следующее:
А компилятор ругается:
Хотя эта штука должна теоритически работать! В чём проблема: во мне, или в Delphi , или ещё в чём-то? |
| Автор: <Spawn> 31.10.2003, 21:40 |
| Помоему, в парамерах процедуры нельзя задавать размер стринга, хотя я могу ошибаться. |
| Автор: bagira 31.10.2003, 21:41 |
| Конструкция после слова String явно какая-то неправильная: 1. Если просто String - тогда после этого слова должна быть точка с запятой. 2. Если String с указанием длины - тогда должны быть квадратные скобки и в них переменная или число, тогда здесь не должно быть точки с запятой после квадратной скобки. 3. Можно константу задать напрямую - через знак равенства. Мне так кажется. Проверь это подозрительное место. |
| Автор: Pakshin A. S. 31.10.2003, 21:46 | ||
Ради прикола написал переписал процедуру inc, взяв её описание из Helpa:
Ругается безбожно!!!!!!!!!!!!!!!!!!!!! |
| Автор: Pakshin A. S. 31.10.2003, 21:48 |
| Чёрт (извините) кнопка Delete отказалась работать!!!!! |
| Автор: Vit 31.10.2003, 22:11 |
| Inc - объявляется следующим образом: Inc(var X:integer; N: Longint=1); |
| Автор: Pakshin A. S. 31.10.2003, 22:15 |
| WOW! А чё в Helpe написали?! Ложь?! И не только в Delphi но и в Pascal?! А не курсах говорилось, что так можно описывать процедуру. Так что, и там всё врут?! |
| Автор: bagira 31.10.2003, 22:36 |
| Я кажется поняла! Так в некоторых хелпах показывают необязательный параметр - в квадратных скобках - это неудачно придумали. Как раз для команды Inc второй параметр является необязательным - он по умолчанию - единица. |
| Автор: Vit 31.10.2003, 23:17 | ||||
| Всё удачно, просто кто-то лекции невнимательно слушает Есть такое понятие - метаязык - это язык описания конструкций языка. В большинстве метаязыков принято необязательные параметры указывать в квадратных скобках, в реальном же языке применяются специальные конструкции. Начиная с Дельфи 4 появились 2 оччччччень полезные конструкции: Значение по умолчанию:
Такая процедура вызванная: MyProc('Hello!');//На экран выведется окно с заголовком "'Hello!" MyProc;//На экран выведется окно с заголовком "'Privet!" И другая фича - перезагружаемые процедуры:
Такую процедуру можно вызвать и как MyProc('Privet!') и как MyProc(1000) |
| Автор: neutrino 31.10.2003, 23:22 |
| А до этого разве не было перегрузки функций? |
| Автор: Vit 31.10.2003, 23:32 | ||
Было но не в Дельфи и не в Паскале - эта фича пришла из C++ |
| Автор: Pakshin A. S. 1.11.2003, 21:14 |
| Ну так что? Ента штука с квадратными скобками не пройдёт? |
| Автор: December 2.11.2003, 02:11 |
| Pakshin A. S. Нет, конечно. |
| Автор: neutrino 2.11.2003, 15:21 |
| Мда... Я когда писал в Дельфи 3, то не использовал перегрузку. Потом в 4 начал и все время думал, что она всегда была. Соответственно когда начал учить С++ - само собой подразумевал, что эта фича всегда была во всех языках. Интересно знать... |