![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему 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 первым и забудь о проблеме.