Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему TBitmap становится недоступным, если есть ссылка на Window [D7, WinXP]


TStas ©   (2006-01-03 16:47:00) 

Собственно сабж. Ситуация уже не первый раз повторялась. В модуле нажны два типа: TBitmap и TPoint. Первый живет в Graphics, второй в Windows. Как только добавляю ссылку на Windows компилятор начинает придираться к строчке bmp:=TBitmap.Create;
И как с этим бороться?
PS Модуль, конечно, не модуль формы, там все нормально. Попытки добавлять не в верхний, а в нижний uses проблему не решают.


tesseract   (2006-01-04 12:09:00) [1]

Помогло?


TStas   (2006-01-03 19:54:00) [2]

>Наиль
Догадался, притом сразу. Щелкнуть мышкой при нажатом контроле у меня ума хватило. Вроде, должно решить проблему. Ведь в моделе формы именно так и перечислены они, Windos раньше Graphics
>tesseract
Еще бы :)


tesseract   (2006-01-03 19:02:00) [3]

Можно просто перенести объявление Tpoint в свой модуль.


> Речь идет о порядке перечисления? И верхний или нижний uses
> значения не имеет?


Имеет, ой как имеет. Объявленный в секции implementation модуль не гонит на перекрёстные ссылки, но не может использовать в объявлениях классов процедур и переменных.


sniknik   (2006-01-03 17:29:00) [4]

можно решить так
bmp:= Graphics.TBitmap.Create;
и плевать в каком порядке модули обьявлены.


Наиль   (2006-01-03 17:21:00) [5]

Если ты ещё не догодался (что маловероятно), сообщаю что неоднозначность возникает из-за того, что в модуле Windows есть свой TBitmap. Соотвествено у него нет тех методов и свойств (в частности Create) которые, ты пытаешься вызвать. Более того, у него вообще нет ни каких свойств (помоему, это просто число).


Наиль   (2006-01-03 17:14:00) [6]

Верхние идут первыми, нижние вторыми.
Все мои случаи были в верхнем uses, поэтому только предполагаю, что это имеет значение.
В любом случае, пусть Windows будет первее от начала программы.


TStas   (2006-01-03 17:03:00) [7]

Речь идет о порядке перечисления? И верхний или нижний uses значения не имеет?


Наиль   (2006-01-03 16:49:00) [8]

При неоднозначности приоритетом обладает последний перечисленый в uses модуль. Поэтому ставь Windows первым и забудь о проблеме.


Наверх

Титульная страница Поиск, карта сайта Написать письмо