![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Fhusy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.11.2006 Репутация: нет Всего: нет |
1. [Fatal Error] Unit1.pas(46): Program or unit 'Unit1' recursively uses itself
Удаляю из списка Uses Unit1 Появляется следующее: 2. Form 'Form1' references form 'Form1' declared in unit 'Unit1' which is not in your USES list. Do you wish to add it? Жму OK, компилирую, повторяется шаг 1. Если не внести в USES Unit1 то: Появляется ошибка Undeclared identifier 'Form1' На всякий случай листинг:
|
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Справку читать пробовал?
Добавлено @ 14:48 Не надо писать имя класса в его методе, если обращаешься к его свойствам. Т.е. не "form1.Image1.Stretch:=true;", но "Image1.Stretch:=true;". Я уверен, что глюк из-за этого. Это сообщение отредактировал(а) Yanis - 16.11.2006, 14:49 |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
Yanis, фигню говоришь. Нет разницы как обращаться, убрав "form1." компилятор знает, что работает в окружении объекта form1.
Fhusy, проверь .dpr файл. Если не вылечишь - кинь архив проекта сюды (можешь без unitXXX, кроме unit1, конечно). -------------------- ...все в мире относительно |
|||
|
||||
| Reptile |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: нет Всего: 3 |
Согласен с Nicholas_S, я когдато тоже так писал
и все работало отлично. |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Дык все же из сообщения. Ты где-то с Uses-ами напутал, ведь у тебя же не один юнит! -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Проблема действительно в обращении к form1.
Это не обращение к классу, а к переменной - экземпляру, которая объявлена в интерфейсной секции. Которая может быть обработана только после реализации. А реализация обращается к form1 из интерфейса. Вот тебе и рекурсия. Добавлено @ 09:40 Откуда он может это знать? А если ты где-то еще создашь десяток экземпляров этого класса, то что все они должны работать с полями того, ссылка на который храниться в переменной form1? Или все-таки каждый со своими? Это сообщение отредактировал(а) bems - 17.11.2006, 09:35 -------------------- Обижено школьников: 8 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
правильно будет self.Image1.Stretch:=true;
-------------------- Обижено школьников: 8 |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
bems, "Василий, ты не прав" (с). Обращение должно идти к имени переменной класса типа TForm1, которая называется form1. Причем тут рекурсия? Ты запусти Borland Delphi и проверь - убедись, что в методе формы компилятору можно указать объект по-разному: либо именем, либо без него.
Автор разобрался или все же пришлет код? -------------------- ...все в мире относительно |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
рекурсии нет, я был не прав. Но помоему все же для случая двух форм этого класса стоит убрать form1 -------------------- Обижено школьников: 8 |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
bems, мы рассматриваем конкретный пример, 1 юнит - 1 форма. TForm1 & form1 - разные, никто не спорит. Проблема, поверь, не в этом.
-------------------- ...все в мире относительно |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 19 |
Ну и отлично
-------------------- ...все в мире относительно |
|||
|
||||
| Fhusy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.11.2006 Репутация: нет Всего: нет |
Ребята я разобрался. Проблема была между 167 и 168 строчкой:
Спасибо |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |