Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

КАК быть?


vitek ©   (2002-06-12 19:49:00) 

У меня вопрос такой: надо проверить запущена ли прога или нет

Если запущена, то показать её поверх других окон
Проблема возникает когда эта прога минимизирована
Ниже код который работает но потом эту прогу нельзя свернуть
Точнее можно только её сперва надо востановить кликнув на панели задач

КАК быть?

procedure TDialogForm.spbDictClick(Sender: TObject);
var hPrevWnd:HWND;
begin
hPrevWnd:=FindWindow("TForm1","form1");
// hPrevWnd:=FindNextWindow;
if hPrevWnd<>0 then
begin
////
// OpenIcon(hPrevWnd);
BringWindowToTop(hPrevWnd);
//setForegroundWindow(hPrevWnd);
//ShowWindow(hPrevWnd,SW_SHOWNA);
ShowWindow(hPrevWnd,SW_RESTORE);
end
else winExec(Pchar(ExtractFilePath(Application.Exename)+
"primer.exe"),SW_normal);
end;


cyborg   (2002-06-14 20:18:00) [1]

В библиотеке Jedi Code Library есть такая функция, скачай и наслаждайся.
Модуль JclAppInst, функция JclAppInstances.CheckSingleInstance;
В главный файл проекта добавляешь только эти две строчки, и твоя прога будет себя находить и показывать в любом состоянии.


vitek   (2002-06-14 16:45:00) [2]

Всем в общем спасибо

Окончательный вариант

if IsWindowVisible(hPrevWnd)
then BringWindowToTop(hPrevWnd)
else ShowWindow(hPrevWnd,SW_RESTORE);

Если кто знает как все таки решить эту проблемку пишите


vitek   (2002-06-14 16:42:00) [3]

>>Sasha9
>>попробуй windows.setfocus(hPrevWnd)

Пробовал не работает

>>YurijNT
>>А со списка форм переменной Screen не проще найти форму и сделать развернуть если надо и продвинуть на верх

Если имеется в виду screen.forms, то

screen.forms - Lists all the forms currently displayed in the application .


YurijNT   (2002-06-12 22:38:00) [4]

А со списка форм переменной Screen не проще найти форму и сделать развернуть если надо и продвинуть на верх


Sasha9   (2002-06-12 20:54:00) [5]

попробуй windows.setfocus(hPrevWnd)


vitek   (2002-06-12 20:32:00) [6]

>>В FAQ есть
Там тоже используется BringWindowToTop
Но это не работает когда приложение свернуто


Song   (2002-06-12 19:54:00) [7]

В FAQ есть.


Наверх

Титульная страница Поиск, карта сайта Написать письмо