| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > процедура в dpr-файле |
| Автор: Kusik 18.11.2009, 17:59 | ||||
| Есть бесформенный проект. В теле между begin..end создаю форму, панель и кнопки (массив кнопок). Но как дошел до присвоения процедуры на OnClick при попытке описать процедуру, которая должна выполнятся на нажатие кнопки (любой в массиве) вылазит следующая ошибка: Statement Expected but 'PROCEDURE' found тело dpr-файла выглядит следующим образом:
Подскажите, что я делаю не так или чего не хватает?
|
| Автор: Kusik 18.11.2009, 18:25 | ||
| все равно, таже ошибка. может нехватает какойнить директивы. это не пас-файл. делал класс левый, и ему присваивал эту процедуру, но все равно, даже если так написать после бегина:
то ошибка таже и повторяется |
| Автор: Демо 18.11.2009, 18:35 | ||
Блин, ты ж наверняка не первый раз видишь код для реализации класса.
|
| Автор: Kusik 18.11.2009, 18:39 |
| ну ладно, написал не так. да. не первый раз конечно же. ошибка говорит о том что чегото нехватает. а чего хз. как не пиши эту процедуру, хоть относительно класса, хоть отфона, ошибка та же. уже сварился%) |
| Автор: Демо 18.11.2009, 19:38 | ||||
| Kusik, Ну так получил нужный результат или нет? Добавлено @ 19:43 Тьфу... Понял, что ЕЩЁ у тебя не получается. В файле проекта консольного приложения нет секции implementation. Если у тебя есть модуль отдельный - включи фиктивный класс в него, реализацию тоже там сделай. Или создай смодуль с одним этим классом... Добавлено @ 19:45
А в файле проекта всё остаётся так же:
|
| Автор: Frees 18.11.2009, 22:50 | ||
|
| Автор: kami 19.11.2009, 01:55 |
Синтаксически, может и не вылазит. Но как быть с параметром Self, неявно передаваемым при вызове любого метода объекта? |
| Автор: Frees 19.11.2009, 07:17 | ||
согласен, self будет nil, но Sender будет правильный |
| Автор: CodeMonkey 19.11.2009, 13:13 |
| Frees, а ты вообще свой код проверял? Добавлено через 5 минут и 36 секунд http://gunsmoker.blogspot.com/2008/12/static-delphi.html Текст ошибки, как и полный код, являются военной тайной? |
| Автор: Frees 19.11.2009, 14:07 | ||
проверял работает Добавлено @ 14:11
|
| Автор: CodeMonkey 19.11.2009, 14:28 |
| Автор: Frees 19.11.2009, 14:39 | ||
не совсем конечно правельно в клике не будет self а так все норм. вот так я проверял...может что и недоглядел...
|
| Автор: Демо 19.11.2009, 15:00 | ||
| Frees, На всякий случай проверь и такую процедуру:
|
| Автор: Frees 19.11.2009, 15:16 |
действительно сендер тоже нил... |
| Автор: CodeMonkey 19.11.2009, 16:37 | ||
| А, дьявол, @ слева я не заметил. Прошу пардону. Тем не менее, правильным будет:
|
| Автор: Frees 19.11.2009, 19:17 |
правельнее сделать класс контейнер всех этих кнопок, а то какойто полу ООП получается Добавлено через 4 минуты и 5 секунд я что то понять не могу почему в моем варианте Sender nil |
| Автор: Демо 19.11.2009, 19:48 |
Так он не передаётся в процедуру. |
| Автор: CodeMonkey 19.11.2009, 21:28 |
Потому что в OnClick ты присвоил указатель на метод. Указатель на объект не менялся. |
| Автор: Kusik 20.11.2009, 12:14 |
| Не могу не согласится с Демо, т.к. придется именно мудуль и делать с левым классом и процедурами. Frees, да, согласен, так проще, безусловно. Когда форма уже существует.- в описании формы связать какую процедуру с нажатием на кнопку. Но форма у меня создается так же как и кнопки. Да и вобще сам проект это только dpr-файл (уже и .res удалил, чтобы не путаться) Я вообще искал решение, надеясь что можно обойтись 1 файлом - dpr. Но, как указал Демо, на то, что в проекте нет секции implementation, пришлось создавать левый Юнит (.pas), описывать в нем левый класс и те процедуры, которые я хотел бы пристегнуть на определенные события в дпр-файле. |
| Автор: Kusik 20.11.2009, 14:05 |
| все. так и сделал, через левый модуль. спасибо за помощь |
| Автор: CodeMonkey 20.11.2009, 21:07 | ||
Вообще-то отдельный модуль здесь не нужен. И секция implementation тем более не при чём. |
| Автор: Демо 20.11.2009, 21:33 | ||
Уг. Точно. Ступил. Не нужен модуль. Всё в файле проекта реализуется. |