Главная страница
    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.47 MB
Время: 0.014 c
2-1143984013
bogdan
2006-04-02 17:20
2006.04.23
задача на перебор


2-1144653791
Gydvin
2006-04-10 11:23
2006.04.23
Control Myrich1 has no parent window


15-1143738356
Кручен-Верчен
2006-03-30 21:05
2006.04.23
На кого пойти учиться?


2-1144392986
Bryak
2006-04-07 10:56
2006.04.23
progressBar!


3-1141191591
r@dius
2006-03-01 08:39
2006.04.23
Объединение ячеек





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