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

Вниз

Кто знает как приложение сделать активным?   Найти похожие ветки 

 
Zemal ©   (2002-09-25 17:53) [0]

ShowWindow(Handle, SW_HIDE);
ShowWindow(Application.Handle, SW_HIDE);

Эти две строки прячут форму и приложение из таскбара...

ShowWindow(Application.Handle, SW_SHOW);
ShowWindow(Handle, SW_SHOW);

А эти две строки востанавливают.

В общем создаю в "трее" иконку и при клике по ней форма приложения показывается... только вот показывается НЕАКТИВНЫМ и позади других окон... некрасиво :(. Может кто знает как сделать мерцание заголовка окна как во многих приложениях? или просто сделать активным?


 
Sedunov Vitaly   (2002-09-25 17:55) [1]

Есть что-то типа BringToFront(Application.Handle)


 
Sedunov Vitaly   (2002-09-25 17:58) [2]

А можно SendMessage(Handle,WM_ACTIVATE,WA_CLICKACTIVE,0)


 
Song ©   (2002-09-25 18:18) [3]

Напишите как отлавливаете клик по значку.


 
Zemal ©   (2002-09-25 19:00) [4]

Да я вообще-то TRxTrayIcon попользовался... что-то он не так как надо работает... а окно так и не становится активным. Запутался я чего-то во флагах ShowWindows(). Наверное надо вручную самому в трей иконку пихать :).
SendMessage(Application.Handle, WM_ACTIVATE, WA_CLICKACTIVE, 0);
Вот почему это не пашет? Нифига не пойму... должно пахать... :(


 
Zemal ©   (2002-09-25 19:06) [5]

procedure TfmMain.FormCreate(Sender: TObject);
begin
Application.OnMinimize := AppMinimize;
Application.OnRestore := AppRestore;
end;

procedure TfmMain.AppMinimize(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TfmMain.AppRestore(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_SHOW);
end;

procedure TfmMain.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Application.Restore;
end;
Вот что и как у меня... незнаю уж чего и думать... должно приложение активизироваться... но... но... но... фиг знает что такое... может это... да хрен его знает почему, пошол я домой - утро вечера... :)


 
Song ©   (2002-09-25 22:02) [6]

А если не использовать Application.Restore а сразу делать ShowWindow() ?

А вообще нужно WM_NULL передавать, если компонент сам этого не делает. Сегодня ссылку кидал, где написано как сделать значок в трею самому, посмотрите, станет понятно.


 
Не спится...   (2002-09-25 23:01) [7]

Попробуйте что-нибудь из этого:

SetForegroundWindow(hWnd); - мигать будет

procedure ForceForeground1(hWnd: Integer);
// Win98
var
OldTimeOut: DWORD;
begin
if hWnd = GetForegroundWindow then Exit;
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer({1}000), 0);
SetForegroundWindow(hWnd);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0);
end;

procedure ForceForeground2(hWnd: THandle);
var hFgWnd: THandle;
ThID, FgThID: Integer;
begin
hFgWnd := GetForegroundWindow;
ThID := GetCurrentThreadID;
FgThID := GetWindowThreadProcessId(hFgWnd, nil);

AttachThreadInput(FgThID, ThID, True);
SetForegroundWindow(hWnd);
AttachThreadInput(FgThID, ThID, False);
end;


 
Zemal ©   (2002-09-26 10:20) [8]

SetForegroundWindow(hWnd);
Уря! Спасибо большое! Ряботает! Класс! Я про эту функцию только что узнал. Оказывается есть такие класные функции на свете! :) По "хандлу" окна любое окно становится активным! Рулез!!! Ещё раз спасибо тому, кому "не спится"! Но, кстати, под вин2000 не мигает окно (цитата: "SetForegroundWindow(hWnd); - мигать будет")... не мигает, но становится активным... тоже неплохо :).


 
Zemal ©   (2002-09-26 10:27) [9]

Наткнулся по анологии на функцию GetForegroundWindows, которая возвращает дескриптор (HWND) или "хандле" по нашенски :) гы-гы :) достаточно легко оказывается получить дескриптор активного, в данный момент, окна.



Страницы: 1 вся ветка

Текущий архив: 2002.10.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-21220
AL2002
2002-09-11 18:17
2002.10.07
Кто-то знает, где качнуть


7-21291
Nalsur
2002-07-23 11:53
2002.10.07
Bios


3-20872
Sergey_Rom
2002-09-16 00:23
2002.10.07
Delphi5 dbf > Delphi5


1-21084
liho26
2002-09-25 08:57
2002.10.07
Торомозю, блин....Помогите!


14-21210
DeMoN-777
2002-09-11 12:50
2002.10.07
Народ у кого-нить есть компонент