![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BorderStyle = bsNone [D7, WinXP]
Sergey77 © (2005-01-04 01:13:00)Как сделать окно BorderStyle = bsNone изменяемым размеры?
A.S.D. (2005-01-10 13:18:00) [1]
> Юрий Зотов © (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;
Sergey77 (2005-01-04 13:53:00) [2]Спасибо всем!
Задача такая: пишу прогу по статистике трафика, это окно нужно для отображения информации поверх всех окон, просто без заголовка (он портит вид слегка), окно будет полупрозрачным; отображает график работы, статистику по скоростям, времени и т.д.
Пойду по способу Stilgar_ и Fay; тут все просто получается.
Fay (2005-01-04 07:32:00) [3]Я бы сказал
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_SIZEBOX;
end;
Stilgar_ (2005-01-04 03:22:00) [4]Пароль уже забыл :(
Может быть это то что нужно (взято из 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.
Юрий Зотов (2005-01-04 02:30:00) [5]> Sergey77
Нужно обрабатывать сообщение WM_NCHitTest. Возвращаете правильный результат (тоже описан в справке) - значит, будет правильно меняться и форма курсора. Возможно, что будет правильно меняться даже и реакция системы на мышь.
Но обрабатывать неклиентскую мышь при bsNone все равно придется самому - и вот тут придется помучаться. Поэтому, думаю, лучше идти обратным путем - пусть мышь обрабатывают все же сами форточки, а Вам нужно только подстроить их обработку под свою задачу.
Кстати - а в чем она? Очень похоже, что если мы начнем именно с этого вопроса, то в итоге как раз и придем к тому, что "есть настройки проще".
:о)
Sergey77 (2005-01-04 02:18:00) [6]Спасибо!
Это тоже известно - будем двигаться в этом направлении.
надеялся, что есть настройки проще.
все-же спасибо!
Gero (2005-01-04 02:01:00) [7]
> нужно, чтобы появлялся курсор на краях формы
TForm.OnMouseMove, Screen.Cursor
> увеличивать с помощью мыши
TForm.OnMouseDown, TForm.OnMouseMove, TForm.OnMouseUp, пост [7].
Если что не понятно, то F1 прояснит.
Sergey77 (2005-01-04 01:57:00) [8]Спасибо!
но ...
программно я знаю.
нужно, чтобы появлялся курсор на краях формы и увеличивать с помощью мыши...
Gero (2005-01-04 01:44:00) [9]Можно.
Form.Width := NewWidth;
Form.Height := NewHeight;
Sergey77 (2005-01-04 01:40:00) [10]
> Gero © (04.01.05 01:29) [3]
> Хорошо, что понятно.
> Еще вопросы будут?
Еще вопрс: пример коротенький можно новичку?
Gero (2005-01-04 01:38:00) [11]
> Sergey77 (04.01.05 01:35)
Я знаком с правилами.
Sergey77 (2005-01-04 01:35:00) [12]Соблюдайте тематику конференции, сообщения "не в тему" будут просто удаляться! Просто потрепаться вы можете в соответствующей конференции. И просьба, будьте вежливы :)
Еще вопрс: пример коротенький можно новичку?
Gero (2005-01-04 01:29:00) [13]Хорошо, что понятно.
Еще вопросы будут?
Sergey77 (2005-01-04 01:24:00) [14]понятно, что не ножками
Gero (2005-01-04 01:22:00) [15]Ручками.