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

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



Память: 0.45 MB
Время: 0.021 c
4-1101255335
Dmitry_04
2004-11-24 03:15
2005.01.09
Раскладка клавиатуры


11-1085129392
A1ex
2004-05-21 12:49
2005.01.09
Обработка RaiseLastOSError в KOL


4-1101137509
Frozzen
2004-11-22 18:31
2005.01.09
Создание полигонов CreatePolygonRgn


10-1077196271
Mr.Z
2004-02-19 16:11
2005.01.09
Help beginner, please?


3-1102614287
oxigen
2004-12-09 20:44
2005.01.09
Как выполнить скрипт IB




   Наверх