Главная страница
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.025 c
14-79177
undert
2003-10-30 19:17
2003.11.24
ПОМОГИТЕ ! TStringGrid


1-78957
Miwa
2003-11-12 05:51
2003.11.24
TOpenDialog.InitialDir


1-78920
Rradion
2003-11-12 14:33
2003.11.24
Алгоритм Бинарного Поиска - помогите плиз...


1-78888
GH@ST
2003-11-13 10:50
2003.11.24
Кто нибудь программировал MS Agent?


3-78749
Dysan
2003-11-06 11:00
2003.11.24
Как через ADOQuery сделать выборку из таблиц из разных директори?