Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

Приложения   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
1-1142560956
Nostradamus
2006-03-17 05:02
2006.04.23
Многоязычные русурсы


15-1143789126
Курдль
2006-03-31 11:12
2006.04.23
Можно ли писать на Kylix под Solaris?


2-1144303276
MiHoY
2006-04-06 10:01
2006.04.23
TServerSocket


2-1144259729
Yegorchic
2006-04-05 21:55
2006.04.23
TMainMenu.ShortCut


3-1140869588
ViktorZ
2006-02-25 15:13
2006.04.23
Засунуть все в одну таблицу: