Не работает Image
Есть форма с настройками. Она предлагает выбрать цвет узора. На форме - компонент Image. Хочется нарисовать в нём пример узора свежевыбранным цветом. Применяю метод главной формы, посылаю туда параметром ExampleImage->Picture->Bitmap - компилятор понимает это дело, но - прога на этой форме ничего не перерисовывает. К чему бы это?..
Цитата:
Originally posted by TheMaster
Проблема в следующем: есть прога, которая рисует узор в главном окне. Есть метод в главном классе, который перерисовывает этот узор. Он в параметр получает указатель на Bitmap, куда всё и рисует......
.... К чему бы это?..
Проблема в следующем: есть прога, которая рисует узор в главном окне. Есть метод в главном классе, который перерисовывает этот узор. Он в параметр получает указатель на Bitmap, куда всё и рисует......
.... К чему бы это?..
я бы в таком случае пошагово F7/F8 просмотрел бы код с момента когда пользователь выбрал цвет и до того места где осуществляется рисование заданным цветом в функции из гловной формы. Действительно ли доходит необходимый цвет туда куда надо... а если все в порядке то посмотрел бы refresh/renew... вызвать не забыли??
Д.С.
Ого какой путь - аж через TBitmap. А может проще будет методами TCanvas того же TImage и Image->Invalidate()?
И через Canvas тоже не получится: его необходимо параметром передавать, а компилятор не понимает выражение Graphics::TCanvas в качестве типа параметра.
Более того, вчера ночью у меня эта хрень заработала, но мне пришлось создавать специально для этого компонента новый Bitmap, потом - задавать его ширину и длину равной длине компонента, передавать его в метод в качестве параметра, а только потом я смог написать:
Image->Picture->Bitmap = Bmp;
И после этого всё заработало.
Однако: пришлось писать пять лишних строчек текста. Может, как-нибудь без этого можно обойтись?
Цитата:
Originally posted by TheMaster
Не в цвете проблема, цвет-то куда надо доходит.
И через Canvas тоже не получится: его необходимо параметром передавать, а компилятор не понимает выражение Graphics::TCanvas в качестве типа параметра.
Более того, вчера ночью у меня эта хрень заработала, но мне пришлось создавать специально для этого компонента новый Bitmap, потом - задавать его ширину и длину равной длине компонента, передавать его в метод в качестве параметра, а только потом я смог написать:
Image->Picture->Bitmap = Bmp;
И после этого всё заработало.
Однако: пришлось писать пять лишних строчек текста. Может, как-нибудь без этого можно обойтись?
Не в цвете проблема, цвет-то куда надо доходит.
И через Canvas тоже не получится: его необходимо параметром передавать, а компилятор не понимает выражение Graphics::TCanvas в качестве типа параметра.
Более того, вчера ночью у меня эта хрень заработала, но мне пришлось создавать специально для этого компонента новый Bitmap, потом - задавать его ширину и длину равной длине компонента, передавать его в метод в качестве параметра, а только потом я смог написать:
Image->Picture->Bitmap = Bmp;
И после этого всё заработало.
Однако: пришлось писать пять лишних строчек текста. Может, как-нибудь без этого можно обойтись?
Это как это так - не понимает? Отлично понимает. И что мешает передавать методу (раз уж на то пошло) указатель на TImage? Дело в том, что TImage занимается визуализацией контейнера TBitmap, а сам TBitmap ничего не отображает, т.к. не является визуальным (не происходит от TControl)
К слову, ты можешь написать и так Image1->Picture->Bitmap->Width = ..., и не надо будет ничего создавать.
В общем, я так и сделал и всё заработало. Спасибо за консультацию!