Главная страница
    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
1-73684
Донской
2002-09-09 18:03
2002.09.23
RXLib для D6


1-73587
billybons
2002-09-12 09:00
2002.09.23
бегущая строка в статусбаре


1-73627
Консул
2002-09-12 14:48
2002.09.23
Tray


6-73795
Mixir
2002-07-21 15:28
2002.09.23
Вопрос о передачи файля.


3-73569
Oleon
2002-08-26 17:06
2002.09.23
Здраствуйте. Nested transaction not supported.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский