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

Вниз

MDI   Найти похожие ветки 

 
webpauk ©   (2008-02-12 15:51) [0]

Form1 - MDIForm
Form2 - MDIChild

как изменить область в которой находится Form2?


 
Сергей М. ©   (2008-02-12 15:52) [1]

что есть "область" ?


 
webpauk ©   (2008-02-12 16:14) [2]

если на форме Form1 нет ничего - при Form2.windowState=wsMaximized, Form2 занимает всю клиентскую область Form1.


 
Palladin ©   (2008-02-12 16:16) [3]

у тебя явно с логикой проблема... максимизированная по твоему приказу форма не может занимать не всю предоставленную MDIForm область


 
ketmar ©   (2008-02-12 16:17) [4]

>[2] webpauk © (2008-02-12 16:14:00)
ты пришёл нам об этом рассказать? мы знаем.

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-12 16:18) [5]

это типа "я хочу что бы она заняла все, но не полностью"


 
ketmar ©   (2008-02-12 16:19) [6]

>[5] Palladin © (2008-02-12 16:18:00)
пусть заапрувит сначала. %-)

---
Understanding is not required. Only obedience.


 
webpauk ©   (2008-02-12 16:22) [7]

вот именно...
хочу чтобы часть заняла...


 
webpauk ©   (2008-02-12 16:24) [8]


> Palladin ©   (12.02.08 16:16) [3]

есть мысля...
если на форму набросать компонентов, align<>alNone, Form2 - занимает ту часть, которая не занята компонентами


 
Palladin ©   (2008-02-12 16:25) [9]

ну направление очень даже верное, я вот только первоначального вопроса не понял... а так же общий смысл твоего возмущения...


 
webpauk ©   (2008-02-12 16:27) [10]

ну извините...
вопрос не того...


 
Игорь Шевченко ©   (2008-02-12 16:30) [11]


> хочу чтобы часть заняла...


unit main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, Menus;

type
 TForm1 = class(TForm)
   MainMenu1: TMainMenu;
   Panel1: TPanel;
   File1: TMenuItem;
   Exit1: TMenuItem;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

end.


object Form1: TForm1
 Left = 0
 Top = 0
 Caption = "Form1"
 ClientHeight = 546
 ClientWidth = 676
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 FormStyle = fsMDIForm
 Menu = MainMenu1
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object Panel1: TPanel
   Left = 0
   Top = 396
   Width = 676
   Height = 150
   Align = alBottom
   BevelInner = bvRaised
   BevelOuter = bvLowered
   Color = clBackground
   TabOrder = 0
 end
 object MainMenu1: TMainMenu
   Left = 172
   Top = 260
   object File1: TMenuItem
     Caption = "&File"
     object Exit1: TMenuItem
       Caption = "E&xit"
     end
   end
 end
end


unit Child;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm2 = class(TForm)
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

end.


object Form2: TForm2
 Left = 0
 Top = 0
 Caption = "Form2"
 ClientHeight = 293
 ClientWidth = 426
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 FormStyle = fsMDIChild
 OldCreateOrder = False
 Visible = True
 PixelsPerInch = 96
 TextHeight = 13
end


program PartialMDIClient;

uses
 Forms,
 main in "main.pas" {Form1},
 Child in "Child.pas" {Form2};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 Application.Run;
end.


Оно ?
MDI-Child не вылезает за границы mainmenu и панели снизу.


 
webpauk ©   (2008-02-12 16:32) [12]


> Игорь Шевченко ©   (12.02.08 16:30) [11]

не оно
у меня на форме нет вообще никаких компонентов...
а насчет align - эт я уже писал...


 
webpauk ©   (2008-02-12 16:33) [13]

вопрос собсно в том как MDIChild определяет клиентскую область и как эту область переопределить.


 
Palladin ©   (2008-02-12 16:35) [14]

определяет так же как и любой TControl с Align=alClient


 
ketmar ©   (2008-02-12 16:38) [15]

>[13] webpauk © (2008-02-12 16:33:00)
может, ты опишешь не то, что тебе надо с окном, а для чего тебе это надо?

---
Understanding is not required. Only obedience.


 
webpauk ©   (2008-02-12 16:38) [16]


> Palladin ©   (12.02.08 16:35) [14]


клиентскую область MDIForm!

>  и как эту область переопределить.


 
webpauk ©   (2008-02-12 16:40) [17]


> ketmar ©   (12.02.08 16:38) [15]


e метя есть форма, на Canvas которой я вывожу изоюражения (ну хочется мне так). Соответственно MdiChild нужно выводить так, чтобы изображения не закрывались


 
Palladin ©   (2008-02-12 16:40) [18]


> [16] webpauk ©   (12.02.08 16:38)

а я те про чего? или тебе млин подробно разжывать надо?
определяет так же как и любой TControl закинутый на MDIForm с установленным свойством Client в alClient


 
ketmar ©   (2008-02-12 16:40) [19]

>[16] webpauk © (2008-02-12 16:38:00)
а чем отличается одна клиентская область от другой, по-твоему?

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-12 16:41) [20]


> [17] webpauk ©   (12.02.08 16:40)

а вот придется кинуть TPanel c какимнибудь Align что бы уже на его Canvas выводить изображения


 
ketmar ©   (2008-02-12 16:41) [21]

>[18] Palladin © (2008-02-12 16:40:00)
о. интересно. никогда не пробовал: а если кинуть панель и alClient ей, а потом MDI Child, и максимизировать — что будет? вендокапец? %-)

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-12 16:42) [22]

фиг знает... сам не пробовал :)
ща...


 
Palladin ©   (2008-02-12 16:46) [23]


> [21] ketmar ©   (12.02.08 16:41)

ага... виндекапец... форма развернулась, но так и осталась под TPanel c Align=alClient :)

капшн только у MDIForm поменялся...


 
Palladin ©   (2008-02-12 16:47) [24]

что в общем то и ожидалось...


 
Игорь Шевченко ©   (2008-02-12 16:48) [25]


> у меня на форме нет вообще никаких компонентов...


А положить для ограничения не судьба ?

Или так:

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Menus;

type
 TForm1 = class(TForm)
   MainMenu1: TMainMenu;
   File1: TMenuItem;
   Exit1: TMenuItem;
 protected
   procedure AlignControls(AControl: TControl; var Rect: TRect); override;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AlignControls(AControl: TControl; var Rect: TRect);
begin
 inherited;
 if ClientHandle <> 0 then
   SetWindowPos(ClientHandle, 0, 0, 0, (Width div 3) * 2, (Height div 3) * 2,
     SWP_NOZORDER or SWP_NOACTIVATE);
end;

end.


 
ketmar ©   (2008-02-12 16:50) [26]

Удалено модератором


 
webpauk ©   (2008-02-12 16:51) [27]


> Игорь Шевченко ©   (12.02.08 16:48) [25]

ВО!!!!!


 
webpauk ©   (2008-02-12 16:52) [28]

Удалено модератором



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

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

Наверх




Память: 0.53 MB
Время: 0.023 c
2-1202578462
DDR
2008-02-09 20:34
2008.03.09
Поиск файлов и TreeView


15-1202051221
Dmitry S
2008-02-03 18:07
2008.03.09
UpdateLayeredWindow


2-1202891080
alexnmsk
2008-02-13 11:24
2008.03.09
Поток в dll


15-1201834853
Slider007
2008-02-01 06:00
2008.03.09
С днем рождения ! 1 февраля 2008 пятница


2-1202887841
Akex
2008-02-13 10:30
2008.03.09
отмена логина в веб-сервис