![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Задание: Нужно сделать на форме область для рисования (половина формы) и на ней чтоб отобразились прямоугольник, круг и текст (параметры этих фигур и сам текст нужно чтоб задавались на форме). И чтобы при изменении размеров окна картинка также менялась, автомасштабировалась. и К тому же надо чтоб при изменении размера окна меньше 640х480 окно не уменьшалось.
Использую canvas чтоб нарисовать прямоугольник (область для рисования), а потом уже в нем собственно рисую фигуры. Сделал перерисовку области рисования при изменении размера окна (тупо закрашиваю все окно а потом заново рисую все объекты), но только до размера 640х480. При уменьшении указанного размера область прямоугольника обрезается, и не появляется скролинг. Подскажите в каком направление мне двигаться хотяб, чтоб решить эту задачу. А то в понед. надо уже преподу показать. Или какие вообще это сделать? |
#2
|
|||
|
|||
![]() Цитата:
Но тогда вот это: Цитата:
А если Вы автомасштабируете картинку "до половины формы", то вот этого Цитата:
А Вы не могли бы, если не трудно, показать код (где перерисовка). Может там надо просто что-то вроде Invalidate сделать. |
#3
|
|||
|
|||
![]() Цитата:
Код:
if ClientWidth<640 then Fill2DrawX1:=640 else Fill2DrawX1:=ClientWidth; if ClientHeight<480 then Fill2DrawY1:=480 else Fill2DrawY1:=ClientHeight; Fill2DrawX2:=Fill2DrawX1; Fill2DrawY2:=Fill2DrawY1; Fill2DrawX1:=Fill2DrawX1 div 2; Fill2DrawY1:=20; //Очищается форма Canvas.Pen.Color:=Color; Canvas.Brush.Color:=Color; Canvas.Rectangle(0,0,ClientWidth,ClientHeight); //Рисуется прямоугольник - область рисования Canvas.Pen.Color:=clBlack; Canvas.Brush.Color:=clWhite; Canvas.Rectangle(Fill2DrawX1,Fill2DrawY1,Fill2DrawX2,Fill2DrawY2); Может это не правильный вариант - закрашивать прямоугольником форму? |