Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-21089
zam2000
2002-09-24 21:16
2002.10.07
Почему не видна форма???


4-21325
maxim2
2002-08-21 08:14
2002.10.07
Cut, Copy, Paste,


14-21253
Николай Быков
2002-09-12 13:04
2002.10.07
Лето и литература


1-21075
Dvorez
2002-09-24 12:22
2002.10.07
CheckBox в ListBoxe


1-21071
Shrek
2002-09-24 22:30
2002.10.07
DiskFree! DiskSize!




   Наверх