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

Вниз

Модальные окна   Найти похожие ветки 

 
VetMIg ©   (2002-08-30 01:59) [0]

Как сделать, чтобы внешний открытый файл, а точнее окно, стало модальным для главной формы моей проги


 
Song ©   (2002-08-30 09:09) [1]

Открыть эту форму модально.


 
dr.karter   (2002-08-30 12:58) [2]

Form1.ShowModal; - если я так понимаю.


 
VetMIg ©   (2002-08-31 01:27) [3]

Уважаемый, доктор Картер. Вы неправильно меня поняли... Да и Song тоже. Мне надо чтобы не форма, а, допустим открыл я виндовский калькулятор из своей проги, и мне нужно, чтобы он стал модальным для главного окна моей проги.


 
Almaz ©   (2002-08-31 04:31) [4]


> VetMIg © (30.08.02 01:59)
> Как сделать, чтобы внешний открытый файл, а точнее окно,
> стало модальным для главной формы моей проги


Что-то вроде этого:
function TForm1.ShowModalProgram(FileName: String): Cardinal;
var
WindowList: Pointer;
ActiveWindow: HWnd;
SI: TStartupInfo;
PI: TProcessInformation;
begin
CancelDrag;
if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
ReleaseCapture;
ActiveWindow := GetActiveWindow;
WindowList := DisableTaskWindows(0);
try
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
if CreateProcess(nil, PChar(FileName), nil, nil, FALSE,
CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI) then
begin
CloseHandle(PI.hThread);
repeat
Application.ProcessMessages;
GetExitCodeProcess(PI.hProcess, Result);
until Result <> STILL_ACTIVE;
CloseHandle(PI.hProcess);
end;
finally
EnableTaskWindows(WindowList);
if ActiveWindow <> 0 then SetActiveWindow(ActiveWindow);
end;
end;


Удачи.


 
Suntechnic ©   (2002-08-31 06:28) [5]

>Almaz © (31.08.02 04:31)
Я бы лично использовал Wait-ф-ции, хотя и в них есть определённый недостаток. Зато родительский процесс не будет пожирать процессорное время на полую катушку.


 
МИФИст ©   (2002-08-31 13:12) [6]

SetParent
This function changes the parent window of the specified child window.

HWND SetParent(
HWND hWndChild,
HWND hWndNewParent );
Parameters
hWndChild
Handle to the child window.
hWndNewParent
Handle to the new parent window. If this parameter is NULL, the desktop window becomes the new parent window.


 
Almaz ©   (2002-08-31 23:39) [7]


> Suntechnic © (31.08.02 06:28)
> >Almaz © (31.08.02 04:31)
> Я бы лично использовал Wait-ф-ции, хотя и в них есть определённый
> недостаток. Зато родительский процесс не будет пожирать
> процессорное время на полую катушку.

Лично я бы тоже, но тогда либо родитель будет "висеть", либо нужно создавать отдельный поток, а это ,IMHO, несколько не соответствует постановке задачи о "модальности". Хотя, что автор вкладывает в понятие модальность... :)

Удачи.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
3-11090
KIR
2002-10-11 01:04
2002.11.04
Как скрыть бэнд в FastReport e?


6-11374
PDV
2002-09-06 09:02
2002.11.04
Проблема с кодировками


4-11564
sadreg
2002-09-13 23:20
2002.11.04
Надо взять содержимое одного из лэйблов диалогового окна


1-11171
volph777
2002-10-24 11:52
2002.11.04
dxDateEdit и формат даты ДД.ММ.ГГГГ


7-11517
Avenger
2002-06-18 08:49
2002.11.04
Дата/Время файла