Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизКак WinAmp Найти похожие ветки
← →
kukuikar (2003-10-14 18:08) [0]Как сделать чтобы основное окно моей программы вело себя так же как и окно WinAmp`a, т.е. при приближении границ окна на 5 пикселов к краю оно бы клеилось к краю экрана.Что обрабатывать, OnDragDrop или КТО?
← →
clickmaker (2003-10-14 18:27) [1]Обрабатывай WM_WINDOWPOSCHANGED. Если разница между краями окон приблизится к минимуму, явно клей свое окно функцией SetWindowPos
← →
clickmaker (2003-10-14 18:29) [2]> Обрабатывай WM_WINDOWPOSCHANGED
или WM_MOVE
← →
DVM (2003-10-14 18:32) [3]
> clickmaker © (14.10.03 18:27) [1]
Правильнее WM_MOVING
← →
nevalex (2003-10-14 21:16) [4]Попробуй так:
.....
private
WMWindowPosChanging(var Msg: TWMWindowPosChanging);
.....
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;
← →
Умный (2003-10-14 22:53) [5]компонент есть такой. Ищи на торри.нет
← →
LINK_‡) (2003-10-15 00:57) [6]Довай мыло я тебе скину ‡) 8)
← →
TUser (2003-10-15 10:04) [7]И мне тоже скинь, плиз, на evaksianov@mail.ru
← →
LINK_‡) (2003-10-15 11:35) [8]Я вам отправил если непришло напишите ещё попробую.
← →
kukuikar (2003-10-17 21:52) [9]всем сенкс. помогло...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c