Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

BorderStyle = bsNone   Найти похожие ветки 

 
Sergey77   (2005-01-04 01:13) [0]

Как сделать окно BorderStyle = bsNone изменяемым размеры?


 
Gero ©   (2005-01-04 01:22) [1]

Ручками.


 
Sergey77   (2005-01-04 01:24) [2]

понятно, что не ножками


 
Gero ©   (2005-01-04 01:29) [3]

Хорошо, что понятно.
Еще вопросы будут?


 
Sergey77   (2005-01-04 01:35) [4]

Соблюдайте тематику конференции, сообщения "не в тему" будут просто удаляться! Просто потрепаться вы можете в соответствующей конференции. И просьба, будьте вежливы :)

Еще вопрс: пример  коротенький можно новичку?


 
Gero ©   (2005-01-04 01:38) [5]


> Sergey77   (04.01.05 01:35)

Я знаком с правилами.


 
Sergey77   (2005-01-04 01:40) [6]


> Gero ©   (04.01.05 01:29) [3]
> Хорошо, что понятно.
> Еще вопросы будут?

Еще вопрс: пример  коротенький можно новичку?


 
Gero ©   (2005-01-04 01:44) [7]

Можно.

Form.Width := NewWidth;
Form.Height := NewHeight;


 
Sergey77   (2005-01-04 01:57) [8]

Спасибо!

но ...
программно я знаю.
нужно, чтобы появлялся курсор на краях формы и увеличивать с помощью мыши...


 
Gero ©   (2005-01-04 02:01) [9]


> нужно, чтобы появлялся курсор на краях формы

TForm.OnMouseMove, Screen.Cursor

> увеличивать с помощью мыши

TForm.OnMouseDown, TForm.OnMouseMove, TForm.OnMouseUp, пост [7].

Если что не понятно, то F1 прояснит.


 
Sergey77   (2005-01-04 02:18) [10]

Спасибо!
Это тоже известно - будем двигаться в этом направлении.
надеялся, что есть настройки проще.
все-же спасибо!


 
Юрий Зотов ©   (2005-01-04 02:30) [11]

> Sergey77

Нужно обрабатывать сообщение WM_NCHitTest. Возвращаете правильный результат (тоже описан в справке) - значит, будет правильно меняться и форма курсора. Возможно, что будет правильно меняться даже и реакция системы на мышь.

Но обрабатывать неклиентскую мышь при bsNone все равно придется самому - и вот тут придется помучаться. Поэтому, думаю, лучше идти обратным путем - пусть мышь обрабатывают все же сами форточки, а Вам нужно только подстроить их обработку под свою задачу.

Кстати - а в чем она? Очень похоже, что если мы начнем именно с этого вопроса, то в  итоге как раз и придем к тому, что "есть настройки проще".
:о)


 
Stilgar_   (2005-01-04 03:22) [12]

Пароль уже забыл :(
Может быть это то что нужно (взято из kuliba - Советы по Delphi Валентина Озерова):

Для создания окна без заголовка с любым стилем контура сделайте следующее:

Добавьте объявление процедуры

--------------------------------------------------------------------------------
   procedure CreateParams(var Params: TCreateParams); override;

и ее реализацию:

--------------------------------------------------------------------------------
   procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
Style := (Style OR WS_POPUP) AND NOT WS_DLGFRAME;
end;

Установите BorderStyle в bsSizeable.


 
Fay ©   (2005-01-04 07:32) [13]

Я бы сказал
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.Style := Params.Style or WS_SIZEBOX;
end;


 
Sergey77   (2005-01-04 13:53) [14]

Спасибо всем!
Задача такая: пишу прогу по статистике трафика, это окно нужно для отображения информации поверх всех окон, просто без заголовка (он портит вид слегка), окно будет полупрозрачным; отображает график работы, статистику по скоростям, времени и т.д.

Пойду по способу Stilgar_ и Fay; тут все просто получается.


 
A.S.D.   (2005-01-10 13:18) [15]


> Юрий Зотов ©   (04.01.05 02:30) [11]


А вот реализация.

procedure TSizablePopup.WMNCHitTest(var Message: TWMNCHitTest);
var
 P: TPoint;
 R: TRect;
 B: Integer;
begin
 inherited;
 with Message do
   if Result = HTCLIENT then
     Result := HTCAPTION
   else begin
     P := Point(XPos, YPos);
     R := BoundsRect;
     if PtInRect(R, P) then begin

       B := BorderWidth;
       InflateRect(R, -B, -B);

       if not PtInRect(R, P) then begin

         if P.X < R.Left then
           Result := HTLEFT
         else if P.X > R.Right then
           Result := HTRIGHT;

         if P.Y < R.Top then
           if Result = HTLEFT then
             Result := HTTOPLEFT
           else if Result = HTRIGHT then
             Result := HTTOPRIGHT
           else
             Result := HTTOP
         else if P.Y > R.Bottom then
           if Result = HTLEFT then
             Result := HTBOTTOMLEFT
           else if Result = HTRIGHT then
             Result := HTBOTTOMRIGHT
           else
             Result := HTBOTTOM;
       end;

     end; // if PtInRect(R, P)

   end; // with Message do if ... else
end;



Страницы: 1 вся ветка

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
1-1105552181
debuger
2005-01-12 20:49
2005.01.23
флешка: как ее есть?


6-1099571869
kaon
2004-11-04 15:37
2005.01.23
отправка сообщений по сети


4-1101956312
Maep
2004-12-02 05:58
2005.01.23
Хранение файлов в ресурсах, как? (C++ Builder)


1-1105282903
Sergo_Zero
2005-01-09 18:01
2005.01.23
Вопрос ? MyForm:TForm.Create(applications);


1-1105430239
Раптон
2005-01-11 10:57
2005.01.23
Как вывести поверх картинки TLabel?