Перейти к содержанию
СофтФорум - всё о компьютерах и не только

размеры формы


Рекомендуемые сообщения

как изменять размеры формы за какой-нибудь другой объект, если свойство BorderStyle=bsNone (предположим за объект Image, кот находится в правом нижнем углу формы)

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

LomaK.XP

в свойстве Image1 OnResize
Form1.Width:=Image1.Width;Form1.Height:=Image1.Height;

И что мы получим? Форму, которая изменяет свои размеры при изменении размеров Image. А кто будет изменять размеры Image? :bleh:

nusya24

Самое простое решение:

1. Привязываешь Image к правому нижнему краю формы, чтобы при resize'e формы он оставался в углу.

2. Вручную контролируешь нажатие левой кнопки мыши над Image'ем. Т.е. заводишь булевскую переменную, например IsResizerImageMouseDown. На onMouseDown Image'a ставишь ее в true, а на onMouseUp - false.

3. На onMouseMove Image'a проверяешь, нажата ли левая кнопка мыши. Если нажата - изменяешь размеры формы на величину смещения мыши. Что-то типа такого:

	if IsResizerImageMouseDown thenbegin	Form1.Height := Form1.Width + X;	Form1.Height := Form1.Height + Y;end;

И все! :bleh:

P.S. Можно, конечно, воспользоваться параметром Shift для определения нажатости кнопки мыши, но тогда будут ложные срабатывания, когда кнопка мыши зажата над другим контролом, но при перемещении курсора к Image'у сработает наш механизм растягивания окна.

P.P.S. Код не тестил, но должно работать.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...