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

Вниз

?? Параметризация TDialog офф ??   Найти похожие ветки 

 
You ©   (2004-12-26 04:40) [0]

Вопрос вот какого характера:

как у появляющихся окон классов TOpenDialog и TSaveDialog устанавливать положение оных на экране, менять сам размер окон и регулировать их З-ордер??  

я кашна подправил исходник ...програ~1\соурс\всл\диалогс.пас, но
может есть какой-нть более лаконичный способ...

заранее всем - ОГРОМНОЕ спасибо


 
Leonid Troyanovsky ©   (2004-12-26 12:05) [1]


> You ©   (26.12.04 04:40)  

> как у появляющихся окон классов TOpenDialog и TSaveDialog
> устанавливать положение оных на экране, менять сам размер
> окон и регулировать их З-ордер??  


Вот уж не знаю насчет z-order, бо диалоги-то модальные,
но у TCommonDialog есть MessageHook, который можно
(аккуратно) попользовать.

Ну, или, старым дедовским способом:


{by Chris Willig}

procedure CenterDialogPos(DlgHandle, WindowHandle: HWND);
var
 DlgRect : TRect;
 WndRect : TRect;
 x, y, w, h : integer;
begin
 if (DlgHandle <> 0) then begin
   GetWindowRect(DlgHandle, DlgRect);
   GetWindowRect(WindowHandle, WndRect);
   w := DlgRect.Right - DlgRect.Left;
   h := DlgRect.Bottom - DlgRect.Top;
   //center horz
   x := WndRect.Left + ((WndRect.Right - WndRect.Left - w) div 2);
   //keep on screen
   if x < 0 then x := 0
   else if x + w > Screen.Width then x := Screen.Width - w;
   //center vert
   y := WndRect.Top + ((WndRect.Bottom - WndRect.Top - h) div 2);
   //keep on screen
   if y < 0 then  y := 0
   else if y + h > Screen.Height then  y := Screen.Height - h;
   SetWindowPos(DlgHandle, 0, x, y, 0, 0, SWP_NOACTIVATE or SWP_NOSIZE or
SWP_NOZORDER);
 end;
end;

procedure TForm1.WMUser1(var msg: TMessage); // message WM_USER+1;
begin
 CenterDialogPos(GetActiveWindow, Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 PostMessage(Handle, WM_USER+1, 0, 0);
 OpenDialog.Execute;
end;


--
С уважением, LVT.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
14-1106242977
Stef
2005-01-20 20:42
2005.02.13
Помогите найти компонент


1-1106658881
Anna
2005-01-25 16:14
2005.02.13
Тест по Delphi при приеме на работу


4-1104081422
Inch
2004-12-26 20:17
2005.02.13
Внедрение кода в чужой процесс


4-1103751569
bot
2004-12-23 00:39
2005.02.13
Клик по кнопке в чужом приложении


14-1106670254
Шишкин Илья
2005-01-25 19:24
2005.02.13
КПК в Москве