Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
ВнизПриложения Найти похожие ветки
← →
Lera (2006-04-07 13:39) [0]Доброго времени суток! У меня открыты 2 приложения. 1 полностью закрывает 2. Не одно не свернуто. Подскажите похалуйста, как вывести 2 поверх 1. Application.restore не помогает, оно почемуто работает тока после Application.minimize. Application.BringToFront почеиуто работает только, когда приложения запускаются из Delphi. Прям не знаю что делать.
← →
balepa © (2006-04-07 14:57) [1]SetForeGroundWindow(hwnd)
А Restore оно и есть потому что после minimize
← →
Lera (2006-04-07 15:24) [2]не помогает...приложение не ложится поверх....тока значек на нижней панели виндов приложения мерцает
← →
Lera (2006-04-10 09:27) [3]может быть кто-нибудь знает?
← →
Handle (2006-04-10 09:50) [4]BringWindowToTop(hWnd);
← →
Lera (2006-04-10 10:10) [5]не работает....к сожалению
← →
Leonid Troyanovsky © (2006-04-10 11:07) [6]
> Lera (10.04.06 10:10) [5]
Сначала надо найти какое-нибудь окно второго приложения,
например, по его классу и/или названию:
var
h: HWND;
h := FindWindow("WindowClass", "WindowTitle");
Win32Check(h<>0);
А затем пытаться вывести его на передний план:
procedure ActivatePrevInstance(wnd: HWND);
var
h : HWND;
begin
h := GetWindowLong(wnd, GWL_HWNDPARENT);
if IsIconic(h) then
ShowWindow(h, SW_RESTORE);
SetForegroundWindow(h);
end;
Не забудь: первое приложение, из которого будет выполняться
этот код, должно быть активно, т.е. быть foreground.
--
Regards, LVT.
← →
Lera (2006-04-10 13:17) [7]у меня 3 приложения....из одного(шапка 2-х других) я посылаю сообщения в другие....и потом само приложение пытаеться себя поставить поверх другого.....спасибо за код.....но с ним приложение не ложиться поверх...только мерцает его занчок на нижней панели виндоус
← →
balepa © (2006-04-10 13:30) [8]Они че у тебя все Always on top ?
На***на такой изврат ?
Можно же просто три окна в одном приложении сделать или нет ?
← →
Lera (2006-04-10 13:36) [9]нельзя три окна....приложения очень объемные по коду....решают разные задачи....было принято решение делать их отдельными экзешниками
← →
Lera (2006-04-11 10:03) [10]не уж то никак нельзя это сделать?
← →
Leonid Troyanovsky © (2006-04-11 11:21) [11]
> Lera (10.04.06 13:17) [7]
> у меня 3 приложения....из одного(шапка 2-х других) я посылаю
> сообщения в другие....и потом само приложение пытаеться
> себя поставить поверх другого.....
Неправильно.
Я ж написал, как нужно сделать.
Т.е., сделать другое приложение foreground может только то
приложение, которое, в данный момент, само foreground.
--
Regards, LVT.
← →
Lera (2006-04-11 13:02) [12]сделала управляющее приложение принудительно SetForegroundWindow(Fm_disp.Handle), после чего посылаю сообщение приложению, которое закрыто....оно принимает сообщение и выполняет код, который вы написали
////////////////////////////////
if IsIconic(Application.Handle) then
ShowWindow(Application.Handle, SW_RESTORE);
SetForegroundWindow(Application.Handle);
if IsIconic(fm_disp_panel.Handle) then
ShowWindow(fm_disp_panel.Handle, SW_RESTORE);
SetForegroundWindow(fm_disp_panel.Handle);
////////////////////////////////
приложение не ложиться поверх...только мерцает его занчок на нижней панели виндоус
← →
Leonid Troyanovsky © (2006-04-11 13:20) [13]
> Lera (11.04.06 13:02) [12]
> сделала управляющее приложение принудительно SetForegroundWindow(Fm_disp.
> Handle), после чего посылаю сообщение приложению, которое
> закрыто....оно принимает
Может я непонятно говорю?
Сделай маленькое приложение с одной формой и одной кнопкой,
для которой напиши:
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
begin
h := FindWindow("Notepad", nil);
if IsIconic(h) then
ShowWindow(h, SW_RESTORE);
SetForegroundWindow(h);
end;
Запусти Блокнот, затем это приложение, нажми на кнопку.
Получилось?
Для дельфийских приложений есть небольшая особенность,
оперировать надо с окном Application - пример я приводил.
--
Regards, LVT.
← →
Lera (2006-04-11 14:47) [14]понятно.....спасибо огромное
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.018 c