Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1144222044
Lucefer
2006-04-05 11:27
2006.04.23
Нужен криптографический алгоритм с откр. ключем


15-1143665763
zeman
2006-03-30 00:56
2006.04.23
Нужна помощь


3-1141283539
tolians
2006-03-02 10:12
2006.04.23
Проблема с дробными числами в Delphi <-> Access


15-1144095238
systemis
2006-04-04 00:13
2006.04.23
Новейший Delphi проэкт


2-1144313131
Der Nechk@ssoff
2006-04-06 12:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский