Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как ресайзить форму мышью, но не за ее границы?


Автор: GydruS 22.9.2011, 17:29
Здравствуйте, коллеги!

Есть необходимость сделать так, чтобы форма ресайзилась по драгу контрола или картинки в правом нижнем углу формы. У самой формы границ нету: (BorderStyle := bsNone;)
Собственно вопрос: как это сделать?

Я вот нарыл прекрасный способ перетаскивания окна за контрол.
Код

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DragMove = $F012;  { a magic number }
begin
  ReleaseCapture;
  Form1.Perform(WM_SysCommand, SC_DragMove, 0);
end;

полагаю, похожим способом можно и ресайз сделать, но не знаю, какие константы отвечают за ресайз. Может кто подсказать? М.б., есть альтернативное решение?

Автор: Frees 23.9.2011, 12:45
Цитата(GydruS @  22.9.2011,  20:29 Найти цитируемый пост)
чтобы форма ресайзилась по драгу контрола или картинки в правом нижнем углу формы

может тебе TStatusBar поможет?

Автор: northener 23.9.2011, 14:07
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/fa26f6a57ab5bc05
Может чем-нибудь поможет

Автор: GydruS 26.9.2011, 17:32
Всем спасибо за ответы, задачу я решил вот так:
Код

Panel1.Perform(WM_SysCommand, $F008, 0);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)