![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюк или не глюк TImage? [D7, WinXP]
Chaser © (2005-06-10 10:37:00)Рисую на Image1.
В свойсвах Image1 в инспекторе объектов ставлю Align:=alClient.
Запускаю программу. Что-то рисую на Image (типа LineTo() и т.п.).
При растягивании формы размер Image почему-то остается таким же, как был при разработке, хотя у него стоит Align:=alClient.
Принудительно изменяю (для примера) ширину Image (Image1.Width:=400) - все равно какой он был ширины при разработке, такой и остался.
Хотя, если в Image загрузить рисунок большего размера чем он был при разработке, то все загружается полностью (размер Image меняется).
Подвкажите плиз, в чем проблема.
WondeRu (2005-06-11 17:01:00) [1]vcl.ru:
Вопрос:
При увеличении размера компонента TImage в RunTime пытаюсь рисоватьзаново на всем поле, но отображается только часть компонента (прежнегоразмера). В чем дело?
Ответ:
Нужно при инициализации выполнить SetBounds(), с максимальными размерами.
Sphinx (2005-06-11 15:52:00) [2]Полная отсебятина :)
Можно рисовать по координатам Image.Canvas на отдельном Bitmap.Canvas, а потом копировать канвас битмапа на имадж...
Image.Width := Bitmap.Width; // необязательно
Image.Height := Bitmap.Height; // необязательно
Image.Picture.Bitmap := Bitmap;
Image.Repaint;
XProger (2005-06-11 01:06:00) [3]К сказаному в [1] добавлю, что image должен находиться либо на форме, либо на другом компоненте с Align:=alClient
Eraser (2005-06-10 22:30:00) [4]Chaser © (10.06.05 10:37)
К сказаному в [1] добавлю, что рисовать надо не на Image.Canvas, а на Image.Picture.Bitmap.Canvas.
programania (2005-06-10 22:29:00) [5]>При растягивании формы размер Image почему-то остается таким же, как был при разработке
как определяешь размер Image?
поставь
procedure TForm1.FormResize(Sender: TObject);
begin
label1.caption:=intToStr(image1.width);
end;
увидишь что image меняется.
Если нужно чтоб менялся рисунок, то image1.Stretch:=true;