nusya24 Опубликовано 3 января, 2006 Жалоба Поделиться Опубликовано 3 января, 2006 как изменять размеры формы за какой-нибудь другой объект, если свойство BorderStyle=bsNone (предположим за объект Image, кот находится в правом нижнем углу формы) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
LomaK.XP Опубликовано 9 февраля, 2006 Жалоба Поделиться Опубликовано 9 февраля, 2006 в свойстве Image1 OnResize Form1.Width:=Image1.Width;Form1.Height:=Image1.Height; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 10 февраля, 2006 Жалоба Поделиться Опубликовано 10 февраля, 2006 LomaK.XP в свойстве Image1 OnResizeForm1.Width:=Image1.Width;Form1.Height:=Image1.Height; И что мы получим? Форму, которая изменяет свои размеры при изменении размеров Image. А кто будет изменять размеры Image? 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; И все! P.S. Можно, конечно, воспользоваться параметром Shift для определения нажатости кнопки мыши, но тогда будут ложные срабатывания, когда кнопка мыши зажата над другим контролом, но при перемещении курсора к Image'у сработает наш механизм растягивания окна. P.P.S. Код не тестил, но должно работать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.