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

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

Окна [D6, Win95/98, WinXP]


silenser ©   (2002-09-11 17:41:00) 

Кто подскажет как сделать склеиваемые окна, которые можно разносить и сцеплять в единое целое (как в Winampe)


Nostradamus   (2002-09-13 02:03:00) [1]

Я вот юнит раз для себя написал, можешь посмотреть на
http://f-soft.km.ru/vcl_r.html

Там и пример есть.


Almaz   (2002-09-12 23:48:00) [2]


> Song © (11.09.02 17:44)
> См. в справке dockable windows

Dockable windows тут абсолютно не причем.


> silenser © (11.09.02 17:41)
> Кто подскажет как сделать склеиваемые окна, которые можно
> разносить и сцеплять в единое целое (как в Winampe)

Один из вариантов решения таков: вам необходимо обрабатывать сообщение WM_MOVE получаемое всеми вашими "липкими" окнами. В обрабочике анализируйте расстояние между текущим окном и другими формами и если оно меньше заданного, то "склеивайте" эти окна. Примерно так, хотя код и требует доработки:

type
TForm1 = class(TForm)
...
private
procedure WMMove(var Message: TWMMove); message WM_MOVE;
end;

...

const
Delta = 20;

procedure TForm1.WMMove(var Message: TWMMove);
var
I: Integer;
F: TForm;
begin
for I := 0 to Screen.FormCount - 1 do
begin
F := Screen.Forms[I];
if (F.Visible) and (F <> Self) then
begin
// Это сделает "липким" левый край формы
if (Abs(Left - F.Left - F.Width) < Delta) and
(Top > F.Top) and (Top < F.Top + F.Height) then
Left := F.Left + F.Width;
end;
end;
inherited;
end;


Удачи.


silenser   (2002-09-12 13:52:00) [3]

Извени не понял в какой справке
ничего не нашел можно подробнее


Song   (2002-09-11 17:44:00) [4]

См. в справке dockable windows


Наверх

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