Форум: "Основная";
Текущий архив: 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.052 c