Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизКак дочернюю форму показать поверх остальных дочерних форм Найти похожие ветки
← →
Cranium (2003-05-12 19:02) [0]Как дочернюю форму показать поверх остальных дочерних форм...
Вариант:
Form1.ShowModal;
Не предлагать так дочерняя форма модально не показывается, да и мне нужно чтоб был виден заголовок....
← →
DVM (2003-05-12 19:28) [1]Может так подойдет:
function ForceForegroundWindow(hWnd: THandle): Boolean;
const
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
OsVerInfo: TOSVersionInfo;
Win32MajorVersion: Integer;
Win32MinorVersion: Integer;
Win32Platform: Integer;
ForegroundThreadID: DWORD;
ThisThreadID: DWORD;
Timeout: DWORD;
begin
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(osVerInfo);
Win32MajorVersion := OsVerInfo.dwMajorVersion;
Win32MinorVersion := OsVerInfo.dwMinorVersion;
Win32Platform := OsVerInfo.dwPlatformId;
if IsIconic(hWnd) then ShowWindow(hWnd, SW_RESTORE);
if GetForegroundWindow = hWnd then Result := True
else
begin
if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4)) or
((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and ((Win32MajorVersion > 4)
or ((Win32MajorVersion = 4) and (Win32MinorVersion > 0)))) then
begin
Result := False;
ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
ThisThreadID := GetWindowThreadPRocessId(hWnd, nil);
if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
begin
BringWindowToTop(hWnd);
SetForegroundWindow(hWnd);
AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
Result := (GetForegroundWindow = hWnd);
end;
if not Result then
begin
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @Timeout, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
SPIF_SENDCHANGE);
BringWindowToTop(hWnd);
SetForegroundWindow(hWnd);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(Timeout),
SPIF_SENDCHANGE);
end;
end
else
begin
BringWindowToTop(hWnd);
SetForegroundWindow(hWnd);
end;
Result := (GetForegroundWindow = hWnd);
end;
end; // End of function ForceForegroundWindow
← →
Юрий Зотов (2003-05-12 19:52) [2]А просто BringToFront не проходит?
← →
Cranium (2003-05-12 20:00) [3]
> А просто BringToFront не проходит?
Пробовал не помогает... Я же про MIDI толкую..
← →
Zacho (2003-05-12 20:37) [4]
> Cranium © (12.05.03 20:00)
Странно.. У меня отлично работает BringToFront. Естественно, MDI. Правда, у меня D6, неужто в семерке что-то круто переделали ?
← →
Юрий Зотов (2003-05-12 21:00) [5]> Cranium © (12.05.03 20:00)
А как Вы вызывате BringToFront? Не у главной ли формы?
← →
Cranium (2003-05-12 21:00) [6]Ты не совсем меня понял (Я не корректно выразился)...
Мне нужно еще чтоб фокус форма не теряла вплодь до закрытия...
← →
Zacho (2003-05-12 21:15) [7]
> Cranium © (12.05.03 21:00)
Ну а кто мешает в MDI использовать модальные формы ? Или нужна не модальная, но что-то типа AlwaysOnTop ? Извини за резкость, но у меня такое приложение сразу же окажется в корзине. Ибо жутко неудобно. И не вижу в этом практического смысла.
← →
Cranium (2003-05-12 21:40) [8]Возможно! Но если нужно ввести важные параметры... В моем случае учтановить рабочий курс валюты... И как мне принудить его ввести...
← →
Zacho (2003-05-12 22:03) [9]
> Cranium © (12.05.03 21:40)
Ну а чем модальная форма не подходит ?
← →
Cranium (2003-05-12 22:20) [10]Ну вомервых MDIChild - не может быть модальной...
Во вторых мне нужно сохранить заголовок формы...
← →
Zacho (2003-05-12 22:32) [11]
> Cranium © (12.05.03 22:20)
MDIChild - не может. Но никто не мешает в MDI-приложении использовать модальные формы.
У меня в MDI-приложении есть модальные формы.
Более того, есть формы, которые могут быть модальными (тогда, у них естественно FormStyle:=fsNormal), а могут быть не модальными (MDIChild). И причем здесь заголовок ?
Или ты чего-то не понимаешь, или я тебя понять не могу.
← →
Юрий Зотов (2003-05-12 22:40) [12]> Cranium © (12.05.03 22:20)
> Ну вомервых MDIChild - не может быть модальной...
Ну так и не делайте ее MDIChild, а делайте Normal. И показывайте модально, кто мешает? А как же в MDI-программах всякие там диалоги работают? Вот так и работают. И никаких проблем.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c