Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-11232
AL2002
2002-10-25 11:07
2002.11.04
ListBox. Его размер, когда разворачиваем.


1-11181
Dunkan
2002-10-23 00:33
2002.11.04
TWebBrowser


14-11438
Mad_Ghost
2002-10-12 19:48
2002.11.04
VC++ и MySQL


1-11251
Semion
2002-10-23 08:24
2002.11.04
Подскажите где найти


1-11178
Mav
2002-10-19 10:52
2002.11.04
Может мне кто нибудь объяснить ответ на мой вопрос популярно ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский