Форма

Ztrel

Здравствуйте, уважаемые! Доброго вам времени суток! У меня вопросик )Как одновременно убрать границу у формы и при этом оставить возможность появления полос прокрутки?Просто если поставить у формы свойство BorderStyle на bsNone, то почему-то исчезают полосы прокрутки, даже если оставить свойство AutoScroll на True... Помогите! Нужно, чтобы при изменении настроек экрана, форма хоть и не изменяла своих размеров, но ее можно было просмотреть полностью, а не частично Размеры заданы.
9 ответов

Ztrel

если тебе нужно только чтобы размеры не менялись то ставь BorderStyle = bsSingle


Ztrel

Нет, мне нужно все и сразу ) Размеры жестко заданы с помощью свойства Constraints... Ну представь, что в данный момент размер формы - 900 x 600 (высота и ширина), а разрешение экрана - 1280 на 1024. Тут никаких проблем нет. Но если поставить разрешение 800 на 600, тогда часть формы не будет видна. Нужно чтобы у формы не было границы, но при этом "в случае чего" появлялись полосы прокрутки... Как это сделать?Ни за что не поверю, чтобы ни у кого не было идей )) У меня была идейка - просто поставить ScrollBox на форму... а дальше - пустота Что с ним тогда делать? Как заставить прокручивать форму в зависимости от ползунка?


Ztrel

Ответ на изначальный вопрос - нельзя так Закройте тему,что ли )


Ztrel

Ztrel, в public пиши
procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
а сама процедура
   procedure TForm2.WMNCHitTest(var M: TWMNCHitTest);
begin
  inherited;
   if M.Result = htClient then
            M.Result := htCaption;
end;
Тогда форму можно будет перетаскивать мышкой "схватившись" в любом месте


Ztrel

Спасибо огромное!!!Давно хотел это сделать Я просто WIN API вообще не знаю


Ztrel

Хм... а какое отношение имеет пост #5 к изначальному вопросу ?
У меня была идейка - просто поставить ScrollBox на форму...
Можно конечно пойти прямиком и тупо сделать нечто подобное. А можно заюзать ScrollWindow(). Вообщем твоя фантазия Евгений В, перемещение формы можно сделать проще
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Form1.Perform (WM_SYSCOMMAND, $f012, 0);
end;


Ztrel

какое отношение имеет пост #5 к изначальному вопросу ?
Потому что цель была вовсе не в ScrollBox,как мне показалось, а в возможность получить доступ к частям формы, вышедшим за границы экрана. Просили идею.А за код спасибо.


Ztrel

возможность получить доступ к частям формы, вышедшим за границы экрана
Когда какой-то компонент выходит за границы формы(не форма за границы екрана), то появляется скролл. Но если стоит bsNone то скролы не появляются. А Ztrel хотел чтобы при bsNone скролы были.


Ztrel

Именно этого я и хотел ) Спасибо, что меня поняли ))