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

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

TCanvas.ClipRect : как изменить? [D5, WinXP]


Vcoder ©   (2002-11-23 20:22:00) 

Идея такова: при изменении размеров формы изменять размещенный на ней Imageтак, чтобы он заполнял всю свободную область. Однако при увеличении размеров формы (и Image) рисовать можно только на той области, которая была при запуске программы. Исследования показали, что Image1.Canvas.ClipRectостается прежним. Изменить напрямую нельзя: ReadOnly.

Подскажите, как быть...


Vcoder   (2002-11-24 10:37:00) [1]

To Matolch
Спасибо. Твой код работает. Теперь ClipRectу меня всегда имеет размер экрана.
Кстати, Image1.Canvas.Rectangle(Image1.Canvas.ClipRect)не обязательно. Работает и без этой строки.

Кстати, когда перед твоим кодом я вставил Image1.Canvas.Brush.Color:=BackColor;
глюк возобновился. Вставил ПОСЛЕ кода - Все OK. Глюкодром...
BackColor- моя глобальная переменная типа TColor.


Matolch   (2002-11-24 07:43:00) [2]

Мои исследования показали, что следует спегва как следует гастянуть данный ClipRect пги помощи следующего несложного метода:

Image1.Height := Screen.Height;
Image1.Width := Screen.Width;
Image1.Canvas.Rectangle(Image1.Canvas.ClipRect);
Image1.Align := alClient;

А потом гисовать как угодно.
Однако, если уважаемый VCoder хотят лишь только гисовать на том самом Image, не вхегачивая туда всякие кагтинки с обнаженными мадемуазелями, следует использовать TPaintBox, который, к нашему счастию, не имеет подобных галлюцинатсий. Или же, пгосто гисовать на фогме, использовав для этого Виндовс.


mukha   (2002-11-23 21:51:00) [3]

Если я правильно понял, то Image1 должен занимать всю форму при изменении её размеров в том числе.
Тогда для Image1.Align:=alClient;
Image1.Stretch:=true;//если надо


Наверх

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