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

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



Память: 0.46 MB
Время: 0.013 c
14-11463
Semion
2002-10-16 06:25
2002.11.04
автозагрузка


7-11506
R_D
2002-08-31 16:03
2002.11.04
---|Ветка была без названия|---


3-11045
Inan61
2002-10-14 16:28
2002.11.04
RxDBGrid1TitleClick и RxDBGrid1TitleBtnClick


1-11286
MsGuns
2002-10-23 12:42
2002.11.04
В Design-mode пропали линейки прокрутки фориы


6-11355
AndrX
2002-09-01 19:47
2002.11.04
Как програмно выключить комп?




   Наверх