
Все-таки, Билл Гейтс - гений. Такие возможности WinAPI предоставляет! Всего лишь десятком операторов такой эффект достигается! Напрасно его хают.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Код: Выделить всё
RECT rClientRect;
HRGN rgn;
GetClientRect (&rClientRect);
rgn = CreateEllipticRgnIndirect (&rClientRect);
if (rgn)
SetWindowRgn (m_hWnd, rgn, TRUE);
Билл Гейтс - гений, согласен (иначе мы бы о нём и не говорили), но вот про WinAPI я бы по воздержался - не думаю что WinAPI придумал Гейтс, это заслуга других людей, да и большинство идей от MS ворованные (перекупленные)" писал(а):Все-таки, Билл Гейтс - гений. Такие возможности WinAPI предоставляет!
Yura_ua писал(а):Blood_Magic, огромное спасибо. Вот только остался один маленький вопросик:
как мне теперь можно перетаскивать мою форму, если Border я сделаю bsNone?
BBB писал(а):Blood_Magic, а с дочерними окнами такой финт, что ли не проходит?
Я попробовал сделать кнопку (Button) круглой. В OnCreate кнопки вставил (вообще-то, пробовал на C++):Думал, получу визуально круглую кнопку (на родительском диалоговом окне), ан нет. Кнопка внешне ничуть не поменяласьКод: Выделить всё
RECT rClientRect; HRGN rgn; GetClientRect (&rClientRect); rgn = CreateEllipticRgnIndirect (&rClientRect); if (rgn) SetWindowRgn (m_hWnd, rgn, TRUE);
![]()
Я пробовал так:Blood_Magic писал(а):откуда ж мне знать ))), ну может кинуть TPanel и таскать за ее
Код: Выделить всё
private
procedure WMNCHitTest(var M: TWMNCHitTest);
message wm_NCHitTest;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1. WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;
Все это свободно отрабатывается на" писал(а):как мне теперь можно перетаскивать мою форму, если Border я сделаю bsNone?
только добавлю, что когда будешь перетаскивать форму данным способом не забудь на OnMouseDown поставить у формы MouseCapture := True, а на OnMouseUp - MouseCapture := False;" писал(а):Все это свободно отрабатывается на
- TForm.OnMouseDown
- TForm.OnMouseUp
- TForm.OnMouseMove
и не надо никаких суперизвращений через всякие HitTest'ы и т.п.