Главная страница
    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.048 c
1-1107176888
Andarkl
2005-01-31 16:08
2005.02.13
Курсор из файла?


1-1107111860
QWEQWEQWE
2005-01-30 22:04
2005.02.13
Drag&amp;Drop


4-1104310249
Yury
2004-12-29 11:50
2005.02.13
Количество логических дисков в системе


1-1106898354
Mishenka
2005-01-28 10:45
2005.02.13
Click по заголовку столбца в DbGridEh


6-1102072233
Vyacheslav
2004-12-03 14:10
2005.02.13
FTP&amp;indy Проблема при уничтожения FTPServer - a





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