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

Вниз

MessageBox   Найти похожие ветки 

 
HappyNewYearToAll   (2003-01-08 17:20) [0]

Ув. делферы!
Можно ли каким-либо образом вывести MessageBox без прерывания кода программы до закрытия этого окна?


 
R4D][   (2003-01-08 17:34) [1]

Если очень надо, то можно попробовать с помощью SetWindowsHookEx установить локальный hook на любую другую прогу(например Explorer) и в MsgProc"e в качестве обработчика сообщения(например, WM_USER+67) поставить вызов MessageBox. А твоя прога должна будет только послать PostMessage(HWND, WM_USER+67,0,0)
Вот пример:
program proga;

uses
Windows,Messages;

var
HookH : HWND;
HandleOfBrows: HWND;
ThreadOfEx : HWND;



function MsgProc(code: Integer; wparam: WParam; lparam: LParam):LResult; stdcall;
begin
if code=HC_ACTION then
begin
// Если пришедшее сообщение WM_USER+67, то продолжаем, иначе ничего не делаем
if TMsg(Pointer(lparam)^).message=WM_USER+50 then MessageBox(o, "That""s work!!!","",MB_OK)
// Передаем управление следующей установленной ловушке
Result:=CallNextHookEx(HookH, Code, wParam, lParam);
end;

begin
HandleOfBrows:=FindWindow(nil,"OleChannelWnd");
ThreadOfEx:=GetWindowThreadProcessId(HandleOfBrows,nil);
HookH:=SetWindowsHookEx(WH_GETMESSAGE,@MsgProc,HInstance,ThreadOfEx);
// Шлем сообщение WM_USER+67 найденному Explorer"у
PostMessage(HandleOfBrows,WM_USER+67,0,0);
// Ждем 10 мс для того, чтобы сообщение успело дойти до Explorer"a
sleep(10);
// Убираем ловушку
UnhookWindowsHookEx(HookH);
end;
end;
end.


 
Игорь Шевченко ©   (2003-01-08 17:47) [2]

Можно. Создать отдельное Popup-окно и показать его немодально :-)


 
mystang   (2003-01-10 11:32) [3]

Можно, если MessageBox вызывать из отдельного потока :)


 
MECHANIC ©   (2003-01-14 20:51) [4]

procedure TMainForm.Button1Click(Sender: TObject);
begin
MessageBox(HWND_DESKTOP, "That is what happens when you don""t go too far!", "Non modal", MB_OK)
end;


 
MECHANIC ©   (2003-01-14 20:54) [5]

Sorry, misunderstood this question.



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

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

Наверх




Память: 0.47 MB
Время: 0.023 c
3-87323
denis24
2003-02-10 16:45
2003.02.27
создание *.dbf


1-87414
Артём К
2003-02-14 12:29
2003.02.27
Как сдвинуть значения массива на один элемент


14-87712
Rustiik
2003-02-12 10:58
2003.02.27
Архивация БД


7-87731
borya
2002-12-26 13:29
2003.02.27
Запускаю CreateProcess ом прогу как скрыть её окошко ?


1-87471
Visit
2003-02-18 13:52
2003.02.27
Как в ObjectInspector е отобразить свойство?