Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизКак вернуть дочернее окно в начало координат клиентской области? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c