Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
silenser   (2002-09-11 17:41) [0]

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


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

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


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

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


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


> 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;


Удачи.


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

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

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



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

Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
8-73770
Draculenok
2002-05-27 14:27
2002.09.23
как отобразить GIF???


1-73633
Slava V.
2002-09-12 15:33
2002.09.23
Как поместить НЕ ГЛАВНЫЕ окна программы в панель задач?


1-73707
koks
2002-09-11 11:37
2002.09.23
HourGlass :((


1-73661
XHelp
2002-09-13 00:04
2002.09.23
Схожесть Double ов


1-73702
Anar
2002-09-11 10:20
2002.09.23
Диалог выбора папки.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский