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

Вниз

?? Параметризация 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
1-1106874074
KOLIG
2005-01-28 04:01
2005.02.13
Сворачивание окна


14-1106288763
вразлет
2005-01-21 09:26
2005.02.13
Ваши предки...


14-1106351728
olookin
2005-01-22 02:55
2005.02.13
Любочка - наивная или нецензурная песня?


4-1103274786
TankMan
2004-12-17 12:13
2005.02.13
Как получить доступ к BIOS-у из WinNT (а еще и из Win9X)?


14-1106204080
Unknown
2005-01-20 09:54
2005.02.13
Курить или не курить





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский