Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1105280027
Skiner_Y
2005-01-09 17:13
2005.01.23
Как грузить DLL в ToolBar


3-1103367985
Серый
2004-12-18 14:06
2005.01.23
Вычисляемое поле


10-1081321930
com.dll
2004-04-07 11:12
2005.01.23
Отладка com-сервера


1-1105194168
__esso
2005-01-08 17:22
2005.01.23
TChart


11-1086338203
BolikDimon
2004-06-04 12:36
2005.01.23
Вопрос по TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский