Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать? [D5, Win95/98, WinME]


[BAD]Angel ©   (2002-11-18 13:42:00) 

Уважаемые мастера, подскажите ПЛЗ, можно ли реализовать следующее:

есть форма, которую можно перетаскивать по экрану непосредственно за саму форму, не за заголовок окна.


procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
if ssLeft in Shift then begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
end;


Как сделать так, чтобы, когда форма касалась одной из своих сторон края экрана, она бы прилипала к ней. (Эффект TaskBar)

Если можно кодом!!!

Буду очень признателен!!!


[BAD]Angel   (2002-11-18 14:56:00) [1]

с этим есть некоторые трудности... есть ли бругой способ?


Axis_of_Evil   (2002-11-18 14:37:00) [2]

Навскидку: Form1.Align, если приблизились к краю
(if Form1.Left < 10)


[BAD]Angel   (2002-11-18 14:34:00) [3]

P.S. Нужен эффект WinAmp"a(прилипание окна к краю экрана)...


[BAD]Angel   (2002-11-18 14:18:00) [4]

procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
if ssLeft in Shift then begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
end;


Вот процедура таскания формы за серую область, а мне нужен алгоритм (код) как сделать прилипания формы к краю экрана!!!!


Axis_of_Evil   (2002-11-18 14:13:00) [5]

Делает то, что при клике по форме(серой поверхности) и попытке
ее таскания как за Caption она таскается.

hc_**** подлежит выяснеиню, просто я не помгю эту константу
(hc_window или чего-то) ну посмотри ты в help.(win32.hlp)


[BAD]Angel   (2002-11-18 14:08:00) [6]

ну неужели никто не может написать код? :-(


[BAD]Angel   (2002-11-18 14:02:00) [7]

Axis_of_Evil- а что эта процедура делает?


Axis_of_Evil   (2002-11-18 13:53:00) [8]

procedure WMNCHitTest(var msg: TMsg); message WM_NCHitTest;

procedure TForm1.WMNCHitTest(var msg: TMsg);
begin
if Result = ****** then
Result := hc_Caption;
end;


****** - hc_форма, посмотри в help,
вообще помучай hc_*


[BAD]Angel   (2002-11-18 13:47:00) [9]

и что дальше? конкретнее ПЛЗ! :-)


Skier   (2002-11-18 13:45:00) [10]

>[BAD]Angel
Лови сообщение WM_MOVING


Наверх

Титульная страница Поиск, карта сайта Написать письмо