Ошибка в Delphi
|
|
MoonKing | Дата: Пятница, 30 Декабря 2011, 20:23 | Сообщение # 1 |
Delphi'ст
Сейчас нет на сайте
| Процедура:
Code procedure TheClose(); begin Close; end;
Ошибка:
Code [Error] paw.dpr(30): '(' expected but ';' found
Я в непонятках, всегда работало, в чем дело-то?
Когда-нибудь я создам свой ЯП. С блэкджеком и шлю... хотя нет, этого не будет.
|
|
| |
prog_154rus | Дата: Пятница, 30 Декабря 2011, 20:28 | Сообщение # 2 |
Lonely Developer
Сейчас нет на сайте
| MoonKing, нужно Quote procedure TheClose(); begin Close(); end;
|
|
| |
MoonKing | Дата: Пятница, 30 Декабря 2011, 20:43 | Сообщение # 3 |
Delphi'ст
Сейчас нет на сайте
| Теперь Code procedure TheClose(); begin Close(); end;
ошибка Code [Error] paw.dpr(30): Expression expected but ')' found
Добавлено (30.12.2011, 20:43) --------------------------------------------- Что, никому нет дела до маленького олдскульного текстового проектика?
Когда-нибудь я создам свой ЯП. С блэкджеком и шлю... хотя нет, этого не будет.
Сообщение отредактировал MoonKing - Пятница, 30 Декабря 2011, 20:44 |
|
| |
TimKruz | Дата: Пятница, 30 Декабря 2011, 20:56 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Quote (prog_154rus) MoonKing, нужно Quote procedure TheClose(); begin Close(); end; В Delphi не нужно писать лишних скобок, если процедура не имеет параметров. Это тебе не Си.
MoonKing, ты ведь хочешь процедурой close закрыть форму (окно)? Тогда нужно так: Form1.Close. Ну или другое название формы. И ни каких скобок не надо, у этой процедуры нет параметров. А вот у одноимённой процедуры, закрывающий файл, есть параметр: Close(f:file).
Дело в том, что процедуры-обработчики событий формы и компонентов описываются внутри объекта формы, и по-умолчанию все функции, записываемые в такой процедуре, относятся к этому объекту. Т.е. мы пишем Close, а компилятор подразумевает Form1.Close.
*** А если хочешь закрыть файл, то нужно Close(переменная-указатель_на_файл).
Сообщение отредактировал TimKruz - Пятница, 30 Декабря 2011, 20:58 |
|
| |
MoonKing | Дата: Пятница, 30 Декабря 2011, 21:01 | Сообщение # 5 |
Delphi'ст
Сейчас нет на сайте
| TimKruz, У меня консольный проект, там как писать, "Console.Close;"?
Когда-нибудь я создам свой ЯП. С блэкджеком и шлю... хотя нет, этого не будет.
|
|
| |
TimKruz | Дата: Пятница, 30 Декабря 2011, 21:09 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| MoonKing, а, так консоль? Ну так там вообще объекта приложения по умолчанию нет (ни тебе TForm, ни TApplication), так что лучше пользоваться процедурами exit (выходит либо из цикла, либо из процедуры, либо из программы, т.е. чтобы выйти из программы она должна быть в теле программы) и halt (в скобках можно указать код выхода: 0 - типа всё отлично, остальное - типа произошла ошибка). То есть в твоём случае получится: Quote (MoonKing) procedure TheClose(); begin Halt; end;
|
|
| |
MoonKing | Дата: Пятница, 30 Декабря 2011, 21:10 | Сообщение # 7 |
Delphi'ст
Сейчас нет на сайте
| TimKruz, Спс за помощь
Когда-нибудь я создам свой ЯП. С блэкджеком и шлю... хотя нет, этого не будет.
|
|
| |