Текущий архив: 2005.01.09;
Скачать: CL | DM;
Вниз
Вывести Opendialog поверх stayontop окна Найти похожие ветки
← →
DelphiN! © (2004-11-24 14:54) [0]Сделал, чтобы форма № 2 была поверх всех окон кодом :
var
Rect:TRect;
begin
GetWindowRect(handle,Rect);
SetWindowPos(Handle,HWND_TOPMOST,Rect.Left,Rect.Top,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top, SWP_SHOWWINDOW);
Теперь, когда вызываю OpenDialog, из формы № 1 его не видно (его перекрывает форма № 2).
Как сделать чтобы OpenDialog вызываемый из формы № 1 перекрывал форму № 2?
← →
nomshar (2004-11-24 17:32) [1]
> DelphiN!
Ежу понятно, что форма № 2 будет перекрывать OpenDialog. Она тебе и сообщения об ошибках перекроет и т.п. Ты не пробывал использовать просто HWND_TOP?
Если же использовать HWND_TOPMOST, то можно пойти следующим путем.
Перед вызовом OpenDialog.Execute вызови для формы № 2 функцию
ту же функцию, но с другим с другим стилем.
Например, так.
procedure TForm1.OnOpenButtonClick(Sender: TObject);
begin
GetWindowRect(Handle, Rect);
if SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE) <> 0 then
begin
if OpenDialog1.Execute then // и далее по тексту...
end;
end;
Ну, что-нибудь в этом роде.
Страницы: 1 вся ветка
Текущий архив: 2005.01.09;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.027 c