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

Вниз

Две формы   Найти похожие ветки 

 
Alex-chainik   (2003-12-10 14:41) [0]

Приложение SDI
Первая форма:
Основная форма с ограниченными размерами.
Находиться верху экрана, допустим Align=alTop
Пример форма в Delphi с инчтрументальной панелью.

Вторая форма:
Создается либо показываеься по нажатию кнопки.
Пример Delphi - рабочая область.

Нужно:
Чтобы при нажатии на кнопку Maximize во второй форме Она увеличивалась Верх до формы первой
низ до TaskBar-а
Пример Delphi - рабочая область.
При повторном нажатии возвращалась в исходное положение и размеры.


 
Stas ©   (2003-12-10 14:49) [1]

form2.top=form1.top+height;
form2.left:=form1.left;
form2.height:=Screen.height-form1.height-(высота таскбара)


 
Alex-chainik   (2003-12-10 14:59) [2]

в какое событие?
Третья строка не правильна, посмотри в delphi IDE как работает
я встречал несколько таких приложений, работающих подобно, поэтомы заинтересовался.
И при повторном нажатии, нужно чтобы возвращалось к исходным размерам и положению


 
sokohigh   (2003-12-10 15:55) [3]

interface
{MainForm}
property VirtualClientRect: TRect read GetVirtualClientRect;
{ChildForm}
procedure WMGetMinMaxInfo(var Msg: TMessage); message WM_GETMINMAXINFO;

implementation
{MainForm}
function TMainForm.GetVirtualClientRect: TRect;
begin
with Result do begin
Top := Self.Top + Self.Height;
Left := Self.Left;
Right := Left + Self.Width;
Bottom := Screen.Height;
end;
end;

{ChildForm}
procedure TChildForm1.WMGetMinMaxInfo(var Msg: TMessage);
var
pmimai: PMinMaxInfo;
begin
pmimai := PMinMaxInfo(Msg.LParam);

with pmimai^, TMainForm1(Application.MainForm).VirtualClientRect do begin
ptMaxSize.X := Right - Left;
ptMaxSize.Y := Bottom - Top;
ptMaxPosition.X := Left;
ptMaxPosition.Y := Top;
end
;
end;


 
Alex-chainik   (2003-12-10 18:21) [4]

Ругается на эту строку

property VirtualClientRect: TRect read GetVirtualClientRect;

Field or method identifier expected


 
sokohigh   (2003-12-10 19:19) [5]

Можно не делать свойство. Достаточно у главной формы создать в секции public функцию GetVirtualClientRect согласно приведенному коду и в WMGetMinMaxInfo сказать:
... TMainForm1(Application.MainForm).GetVirtualClientRect ...


 
Alex-chainik   (2003-12-11 19:49) [6]

Спасибо, разобрался



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
1-75196
Lin7
2003-12-09 17:06
2003.12.23
Как в меню отобразить комбинацию горячих клавиш


1-75164
yaric
2003-12-09 16:22
2003.12.23
Проблема с DevExpress


1-75156
UPR
2003-12-10 03:34
2003.12.23
Edit и кнопка Tab


7-75412
miek
2003-10-17 19:13
2003.12.23
секрет DOS


14-75304
Alexandr.
2003-11-30 14:12
2003.12.23
Что такое MsSQL и с чем его употребляют?