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

Вниз

Как вернуть дочернее окно в начало координат клиентской области?   Найти похожие ветки 

 
Aleksandr ©   (2003-11-14 13:02) [0]

Заколебала меня такая ерунда - при каждом создании дочерних окон окно MDI сдвигает их все дальше вправо-вниз. Как можно задать, чтобы они создавались и оставались в начале координат клиентской области родительской формы? пытался перекрыть CreateParams, задавая туда Х и Y на 1,1, не помогло. Соответветственно, обычное присвоение Left, Top в FormShow тоже не возымело эффекта.


 
Eugene1501 ©   (2003-11-14 13:12) [1]

Лучший подход в такой ситуации по моему мнению запоминать координаты и размер окна при закрытии и восстанавлвать сохраненные параметры при открытии.


 
Aleksandr ©   (2003-11-14 13:41) [2]

Дык елки-палки, это само собой. Только вот толку от этого никакого, потому что при трассировке она уверенно показывает, что Top:=1 = 1 Left:=1 = 1, а вот при показе формы она оказывается сдвинутой нафиг.


 
Eugene1501 ©   (2003-11-14 14:33) [3]

Устанавливай координаты окна на OnShow.


 
Aleksandr ©   (2003-11-14 14:48) [4]

Еще раз прочтите мой текст:

>Соответветственно, обычное присвоение Left, Top в FormShow тоже >не возымело эффекта.


 
Игорь Шевченко ©   (2003-11-14 15:29) [5]

Например, так:

procedure SetMDIChildBestFitPosition (AForm : TCustomForm);
var
m_offSet : longint;
ClientArea : TRect;
I : Integer;
begin
m_offSet := GetSystemMetrics(SM_CYCAPTION);
GetWindowRect (Application.MainForm.ClientHandle, ClientArea);
I := Application.MainForm.MDIChildCount;
while I > 9 do
dec(I,10);
with AForm do begin
left:= I*m_offSet;
top := I*m_offSet;
width := ClientArea.right - ClientArea.left - left - m_offSet;
height:= ClientArea.bottom - ClientArea.top - top - m_offSet;
end;
end;

constructor TfAbstractChild.Create(AOwner: TComponent);
begin
inherited;
SetMDIChildBestFitPosition(Self);
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
6-79089
explorer
2003-09-18 06:36
2003.11.24
Удаленный запуск программ


3-78755
trcv
2003-11-03 16:11
2003.11.24
trigger


1-78967
prockrut
2003-11-14 18:43
2003.11.24
Как изменить текст заголовка приложения в панели задач?


14-79171
Іhor Osov'yak
2003-10-31 09:40
2003.11.24
Виртульная война, грязные технологии


4-79240
Aleksandr
2003-09-26 14:47
2003.11.24
Есть стандартные функции АПИ для диалога со строкой ввода?