Форум: "Начинающим";
Текущий архив: 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.04 c