Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

Магнитное окно   Найти похожие ветки 

 
Grinder ©   (2004-01-21 10:57) [0]

МАСТЕРА, может кто подскажет как сделать "магнитное" окно. Как на Winamp?


 
WED ©   (2004-01-21 11:04) [1]

Порули поиском по слову "липкие".. кажись так статья называлась "липки окна"...


 
TUser ©   (2004-01-21 11:06) [2]

См архив этого форума (~ 1,5 месяца назад было что-то похожее). Вобщем надо перехватывать WM_MOVE (и WM_SIZE, если магнитизм должен быть при изменении размеров). + в jedi есть компонент, который позволяет примагничивать окно к границам экрана.


 
Grinder ©   (2004-01-21 11:10) [3]

Нету :( В jedi видел его. Но не люблю jedi. Он зараза раздувает размер файла неоправдано.


 
Grinder ©   (2004-01-21 11:18) [4]

Нашел такое решение пока.
procedure TForm1.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);

var
WorkArea: TRect;
StickAt : Word;

begin
StickAt := 20;
SystemParametersInfo(SPI_GETWORKAREA, 0, @WorkArea, 0);
with WorkArea, Msg.WindowPos^ do
begin
// Сдвигаем границы для сравнения с левой и верхней сторонами
Right:=Right-cx;
Bottom:=Bottom-cy;
if abs(Left - x) <= StickAt then
x := Left;
if abs(Right - x) <= StickAt then
x := Right;
if abs(Top - y) <= StickAt then
y := Top;
if abs(Bottom - y) <= StickAt then
y := Bottom;
end;
inherited;

end;


 
Babay ©   (2004-01-21 11:27) [5]

Можно перехватывать сообщение WM_MOVE формы и по нему позиционировать "прилипшие"


 
DVM ©   (2004-01-21 12:57) [6]


> Можно перехватывать сообщение WM_MOVE формы и по нему позиционировать
> "прилипшие"

Не WM_MOVE, а WM_MOVING. Дальше все очень просто. Находим расстояние между прямоугольником окна и той прямой, к которой окно должно прилепать. Если оно меньше некоторого минимума, то двигаем окно вплотную к линии. См. описание WM_MOVING.



Страницы: 1 вся ветка

Текущий архив: 2004.02.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
14-2273
Kviz
2004-01-07 14:44
2004.02.02
Вот собрался новый мониторчик ЖК брать, прошу помощи.


3-2038
fag2000
2004-01-05 14:54
2004.02.02
SQL - какой его диалект понимает dBase?


14-2307
Юрий Федоров
2004-01-07 22:16
2004.02.02
Нужно снять квартиру в Москве


1-2163
Sirakuz
2004-01-21 16:04
2004.02.02
Floating point IEEE format (80 bit) Как?


3-1996
Silver_
2004-01-08 11:34
2004.02.02
В DBGrid-е если ADODataSet фильтрированный ScrollBar не работает