Существует круг, сделанный с помощью метода холста MainForm -> Canvas -> Ellipse(350,100,550,300)
. Вопрос состоит в том, чтобы изменить размер холста, нажав кнопки «+» или «-». Есть ли какие-нибудь методы?Изменение размера холста щелчком
ответ
для изменения размера эллипса:
создать какие-то глобальные или члены Форма переменные:
int x0=350,y0=100,x1=550,y1=300;
- это имеет параметры эллипса
создать некоторую функцию отрисовки (элемент для формирования или нет)
, например:
void draw(TCanvas *scr) { scr->Pen->Color=clWhite; scr->Brush->Color=clBlack; scr->FillRect(TRect(0,0,MainForm->ClientWidth,MainForm->ClientHeight)); scr->Brush->Color=clBlue; scr->Ellipse(x0,y0,x1,y1); }
создавать события на изменение размеров и на краске для основной формы и добавить дро (Canvas); звоните в будке
- , который будет перекрашивать свою форму при необходимости
создать на (мыши) выберите событие
- внутри вы вызывая переменные
X,Y,Shift
удерживающие состояние мыши - так просто добавить это к нему
x1=X; y1=Y; draw(Canvas);
- внутри вы вызывая переменные
Это все ... надеюсь, что я не сделал какой-то опечатка (писал по памяти непосредственно здесь)
Если вам необходимо изменить размер формы, то:
- вместо
x1=X, y1=Y;
сделать ClientWidth=X+32; ClientHeight=Y+32;
- или использовать
SetBounds(Left,Top,X+32,Y+32);
+32
- это область изменения размера, чтобы вы могли также увеличить ...
[edit1] скучал кнопки +/- (я предполагал мыши изменить размер), так вот кнопки
создать на + события нажатия кнопки:
оставить существующий код как есть и добавить к этому коду события
int cx=(x0+x1)>>1,ax=(x1-cx); ax+=16; x0=cx-ax; x1=cx+ax; int cy=(y0+y1)>>1,ay=(y1+cy); ay+=16; y0=cy-ay; y1=cy+ay; draw(Canvas);
, что увеличит стенд полуприцепы осях по 16 на каждый клик
создать на кнопку - кликните событие:
код похож на +
int cx=(x0+x1)>>1,ax=(x1-cx); ax-=16; if (ax<1) ax=1; x0=cx-ax; x1=cx+ax; int cy=(y0+y1)>>1,ay=(y1+cy); ay-=16; if (ay<1) ay=1; y0=cy-ay; y1=cy+ay; draw(Canvas);
который будет сжимать полуоси кабины на 16 при каждом щелчке и останавливаться по размеру 1
если вам нужна форма, чтобы изменить размер затем адаптировать код выше ... как в примере на события мыши
Borland C++ !? Havent видел это годами :) –
@ViktorSehr это «современное» образование в нашей стране :) – DNilla
В какой стране это? –