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

Вниз

Форма поверх остальных окон.   Найти похожие ветки 

 
nord489   (2007-08-18 17:43) [0]

Здравствуйте! Подскажите, пожалуйста, как сделать чтобы форма отображалась всегда поверх остальных окон?


 
tmp   (2007-08-18 18:16) [1]

Form1.FormStyle := fsStayOnTop;


 
Anatoly Podgoretsky ©   (2007-08-18 19:25) [2]

Слово "всегда" неуместно.


 
alshtam   (2007-08-21 10:28) [3]

отображать sjhve какмодальную Form1.ShowModal;


 
wp2 ©   (2007-08-21 10:32) [4]

>отображать sjhve какмодальную Form1.ShowModal;
Это может быть не совсем тем, что надо. Так как главная программа будет спотыкаться и ждать ответа от этой модульной формы.


 
Dib@zol ©   (2007-08-21 10:32) [5]

SetWindowPos(Form1.Handle, HWND_TOPMOST, Form1.Left, Form1.Top, Form1.Width, Form1.Height, SWP_SHOWWINDOW);


 
DVM ©   (2007-08-21 10:33) [6]

SetWindowPos() + HWND_TOPMOST + WM_WINDOWPOSCHANGING


 
Dib@zol ©   (2007-08-21 10:34) [7]

Муахахахаха, я первый :)


 
DVM ©   (2007-08-21 10:37) [8]


> Dib@zol ©

Ты крут неимоверно!

Только твой ответ не полный. То, что ты написал двинет окно наверх, но оно там долго не удержится. Для последующего удержания окна наверху надо обрабатывать WM_WINDOWPOSCHANGING


 
Dib@zol ©   (2007-08-21 10:53) [9]

> [8] DVM ©   (21.08.07 10:37)

Кхм. Правда? В хелпе написано, что с таким параметром его никто не-топмост не перекроет. Я попробовал - и у меня его перекрыла только панель задач. Т.к. она также топмост. Ну а если нужно уж быть из всех тоопмостов топмостом, т о тогда да... WM_WINDOWPOSCHANGING. Но опять же, если запустить две таких проги, то не приведёт ли это к повисанию обоих в борьбе за первенство на экране?


> Ты крут неимоверно!

Не обижайся. Я всего лишь апришёл к тому же выводу что и ты на пару секунд раньше.


 
DVM ©   (2007-08-21 10:57) [10]


> Но опять же, если запустить две таких проги, то не приведёт
> ли это к повисанию обоих в борьбе за первенство на экране?
>

Ну это само собой. Об этом и сказали в [2]. Ниже всех расположить окно можно - выше всех только до первого такого же окна.

> Не обижайся.

И в мыслях не было.


 
antonn ©   (2007-08-21 11:41) [11]


> Но опять же, если запустить две таких проги, то не приведёт
> ли это к повисанию обоих в борьбе за первенство на экране?
>

нет, не приведет. а вот если будет два окна в одной программе рвущихся наверх - то да, может зависнуть


 
Вася Правильный   (2007-08-21 11:45) [12]


>  всегда поверх остальных окон?

автора зарэзать за такое надо
а программу расчленить и в унитаз


 
{RASkov} ©   (2007-08-21 12:38) [13]

> Ниже всех расположить окно можно

Не один ли фик выше/ниже....

> выше/ниже всех только до первого такого же окна.

?
Это вопрос
:)

> а программу расчленить и в унитаз

Ради этого ее еще и печатать... бумагу тратить :)


 
antonn ©   (2007-08-21 12:51) [14]


> Вася Правильный   (21.08.07 11:45) [12]
>
> автора зарэзать за такое надо
> а программу расчленить и в унитаз

не умно


 
DVM ©   (2007-08-21 13:27) [15]


> {RASkov} ©   (21.08.07 12:38) [13]
> > Ниже всех расположить окно можно
>
> Не один ли фик выше/ниже....

Не один. В системе есть функция для расположения одного и только одного окна в каждый момент времени ниже всех. Это обычно окно шелла.


 
{RASkov} ©   (2007-08-21 13:39) [16]

> [15] DVM ©   (21.08.07 13:27)

Да это и понятно...
> в каждый момент времени

В один момент времени есть одно верхнее и одно нижнее, ведь так?
поэтому

> > выше/ниже всех только до первого такого же окна.

Или

> > Ниже всех расположить окно можно

Можно сколь угодно таких окон?
:)


 
Вася Правильный   (2007-08-21 13:46) [17]


> не умно

"а судьи кто?"


 
DVM ©   (2007-08-21 14:22) [18]


> {RASkov} ©   (21.08.07 13:39) [16]
> > [15] DVM ©   (21.08.07 13:27)
>
> Да это и понятно...
> > в каждый момент времени
>
> В один момент времени есть одно верхнее и одно нижнее, ведь
> так?
> поэтому

Я неточно выразился наверное. Одновременно может существовать лишь одно окно, которое располагается ниже всех. Пока это окно существует, никакое другое его место занять не сможет. Функция просто ошибку вернет.

Функция эта:

UserLibHandle := LoadLibrary("USER32.DLL");
@SetShellWindow := GetProcAddress(UserLibHandle, "SetShellWindow");

Эту функцию MS не описала и оставила очевидно для себя, для эксплорера. Окно, к которому применяется эта функция уже не сдвинуть больше со своего места никуда.



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

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

Наверх




Память: 0.48 MB
Время: 0.066 c
15-1185358975
Kerk
2007-07-25 14:22
2007.09.16
В Воронеже поставили памятник коню (!)


1-1183551722
Bel
2007-07-04 16:22
2007.09.16
Запустить службу в Vista


15-1187469643
Константинов
2007-08-19 00:40
2007.09.16
Смена работы


15-1187553791
wp2
2007-08-20 00:03
2007.09.16
Как загрузить Rich-тест в компонент TRichEdit на этапе проэктир..


15-1187771820
Jeer
2007-08-22 12:37
2007.09.16
Библиотека DC





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