Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.03.2015, 21:18
Vlady_32 Vlady_32 вне форума
Прохожий
 
Регистрация: 09.03.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Недоступность границы окна после применения регионов

Необходимо вернуть границу окна после применения региона.
Есть код как это сделать, только непонятно откуда взялась переменная Mxpos и на ней выдаёт ошибку. Что она обозначает эта переменная?

Код:
procedure TForm1.HiTTest(var M: TWMNCHitTest) ;
var x:integer;
begin
	x:=Mxpos-left;
	if x<100 then
		M.Result:=HTCAPTION
	else inherited
end;
Ответить с цитированием
  #2  
Старый 09.03.2015, 22:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вероятно, это коодината мышки. Интересно, почему х...
Видимо, "возвращают" только левую границу.

На самом деле, этот код ничего не возвращает. Только при клике мышкой он в случае попадания в определенную область окна говорит, что это заголовок окна, что позволяет, например. двигать окно мышкой.
Ответить с цитированием
  #3  
Старый 09.03.2015, 22:47
Vlady_32 Vlady_32 вне форума
Прохожий
 
Регистрация: 09.03.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

После применения региона пропадает верхняя панель, там где расположены кнопки закрытия, сворачивания. Как их вернуть обратно?
Ответить с цитированием
  #4  
Старый 09.03.2015, 23:02
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Удалить регион
Код:
DeleteObject(MyRegion);
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 09.03.2015, 23:10
Vlady_32 Vlady_32 вне форума
Прохожий
 
Регистрация: 09.03.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Удалить регион
Код:
DeleteObject(MyRegion);

Сделал, что вы сказали. Всё равно не получилось.


Цитата:
procedure TForm1.FormCreate(Sender: TObject);
var
rgn1,rgn2: Thandle;
p:array[0..20] of tpoint;
begin
Form1.Borderstyle := bsNone;
rgn1:= CreateRoundRectRgn(0,0,Width,Height,25,25);
rgn2:=CreateRoundRectRgn(440,15,485,115,25,25);
CombineRgn(rgn1,rgn1,rgn2,RGN_XOR);
p[0]:=point(445,20);
p[1]:=point(445,110);
p[2]:=point(450,110);
p[3]:=point(450,20);
p[4]:=point(445,20);

p[5]:=point(450,60);
p[6]:=point(470,20);
p[7]:=point(475,25);
p[8]:=point(460,55);
p[9]:=point(480,105);

p[10]:=point(475,110);
p[11]:=point(455,60);
p[12]:=point(450,75);
p[13]:=point(450,60);
rgn2:=CreatePolygonRgn(p,14,1);
CombineRgn(rgn1,rgn1,rgn2,RGN_XOR);
try
SetWindowRgn(Handle, rgn1,True);
finally
DeleteObject (rgn1);
end;
end;

Последний раз редактировалось Vlady_32, 09.03.2015 в 23:19.
Ответить с цитированием
  #6  
Старый 09.03.2015, 23:18
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Удалять нужно тот регион, который получился при его создании.
Правда непонятен смысл всего этого.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 09.03.2015 в 23:20.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Vlady_32 (09.03.2015)
  #7  
Старый 09.03.2015, 23:24
Vlady_32 Vlady_32 вне форума
Прохожий
 
Регистрация: 09.03.2015
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Удалять нужно тот регион, который получился при его создании.
Правда непонятен смысл всего этого.

Спасибо за совет, разобрался. Всё получилось!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025