Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с описанием процедуры. 
:(
    Опции темы
Pakshin A. S.
  Дата 31.10.2003, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Пишу следующее:
Код

procedure ProcName(const Per1:string[; Per2:integer]);
begin

end;


А компилятор ругается:
Цитата

';',')' or '=' expected but '[' found
')' expected but ']' found


Хотя эта штука должна теоритически работать!

В чём проблема: во мне, или в Delphi , или ещё в чём-то?
PM   Вверх
<Spawn>
Дата 31.10.2003, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Помоему, в парамерах процедуры нельзя задавать размер стринга, хотя я могу ошибаться.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
bagira
Дата 31.10.2003, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Конструкция после слова String явно какая-то неправильная:
1. Если просто String - тогда после этого слова должна быть точка с запятой.
2. Если String с указанием длины - тогда должны быть квадратные скобки и в них переменная или число, тогда здесь не должно быть точки с запятой после квадратной скобки.
3. Можно константу задать напрямую - через знак равенства.
Мне так кажется. Проверь это подозрительное место.



--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 31.10.2003, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Ради прикола написал переписал процедуру inc, взяв её описание из Helpa:
Код

procedure Inc(var X [; N: Longint ] );

Ругается безбожно!!!!!!!!!!!!!!!!!!!!!

PM   Вверх
Pakshin A. S.
Дата 31.10.2003, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Чёрт (извините) кнопка Delete отказалась работать!!!!!
PM   Вверх
Vit
Дата 31.10.2003, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Inc - объявляется следующим образом:

Inc(var X:integer; N: Longint=1);



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 31.10.2003, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



WOW! А чё в Helpe написали?! Ложь?! И не только в Delphi но и в Pascal?!

А не курсах говорилось, что так можно описывать процедуру. Так что, и там всё врут?!
PM   Вверх
bagira
Дата 31.10.2003, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Я кажется поняла! Так в некоторых хелпах показывают необязательный параметр - в квадратных скобках - это неудачно придумали. Как раз для команды Inc второй параметр является необязательным - он по умолчанию - единица.


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Vit
Дата 31.10.2003, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Всё удачно, просто кто-то лекции невнимательно слушает smile.gif ;) - шутю я, не обижайтесь...

Есть такое понятие - метаязык - это язык описания конструкций языка. В большинстве метаязыков принято необязательные параметры указывать в квадратных скобках, в реальном же языке применяются специальные конструкции. Начиная с Дельфи 4 появились 2 оччччччень полезные конструкции:

Значение по умолчанию:

Код
Procedure MyProc(Str:string='Privet!');
begin
 Showmessage(Str);
end;


Такая процедура вызванная:

MyProc('Hello!');//На экран выведется окно с заголовком "'Hello!"
MyProc;//На экран выведется окно с заголовком "'Privet!"


И другая фича - перезагружаемые процедуры:

Код
Procedure MyProc(s:string);overload;
Procedure MyProc(i:integer);overload;

...
Implementation

Procedure MyProc(s:string);overload;
begin
 showmessage(s);
end;

Procedure MyProc(i:integer);overload;
begin
 showmessage(inttostr(i));
end;


Такую процедуру можно вызвать и как MyProc('Privet!') и как MyProc(1000)




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
neutrino
Дата 31.10.2003, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А до этого разве не было перегрузки функций?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Vit
Дата 31.10.2003, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(neutrino @ 31.10.2003, 14:22)
А до этого разве не было перегрузки функций?

Было но не в Дельфи и не в Паскале - эта фича пришла из C++


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 1.11.2003, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Ну так что? Ента штука с квадратными скобками не пройдёт?
PM   Вверх
December
Дата 2.11.2003, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Pakshin A. S. Нет, конечно.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
neutrino
Дата 2.11.2003, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Мда... Я когда писал в Дельфи 3, то не использовал перегрузку. Потом в 4 начал и все время думал, что она всегда была. Соответственно когда начал учить С++ - само собой подразумевал, что эта фича всегда была во всех языках. Интересно знать...


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.