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

Вниз

MDI приложение !!!   Найти похожие ветки 

 
Максим   (2003-10-08 10:26) [0]

Как сделать чтобы открытые дочернии формв распологались внизу на отдельном баре, и чтобы можно былобы переключаться между ними если их открыто много ????????


 
AndrewPo ©   (2003-10-08 11:48) [1]

вот так:
создаем панель TToolBar без кнопок, ставим Align=alBottom

обработчик для пункта меню, который должен открывать форму делаем такой:

procedure TForm1.N3Click(Sender: TObject);
var TB1: TToolButton;
begin
N3.Enabled:=False; // Запрещаем пункт меню: нафига нам 2 одинаковые формы
Application.CreateForm(TForm2, Form2); // Создаем дочернюю форму
Form2.Tag:=MDIChildCount-1;
Form2.Show; // Показываем ее
TB1:=TToolButton.Create(ToolBar1); // Создаем кнопку на панели
TB1.Parent:=ToolBar1;
TB1.Caption:=Form2.Caption;
TB1.Tag:=MDIChildCount-1;
TB1.OnClick:=TBsClick; // Назначем событие на клик по кнопке
TB1.Show; // Показываем ее
end;


В описании класса TForm1 объявляем метод
procedure TBsClick(Sender: TObject);

... и определяем его
procedure TForm1.TBsClick(Sender: TObject);
var i: Integer;
begin
for i:=0 to MDIChildCount-1 do
if TForm(MDIChildren[i]).Tag = TToolButton(Sender).Tag then
begin
TForm(MDIChildren[i]).BringToFront;
Break;
end;
end;


теперь при клике на кнопку соответствующая форма вылезет на передний план. Соответствие устанавливается с помощью свойств Tag формы и кнопки.


 
Максим   (2003-10-08 13:19) [2]

Не работает !!! Во-первых нет имени формы на кнопке, во вторых когда сворачиваешь окно то она болтается над ТулБаром .........


 
panov ©   (2003-10-08 13:48) [3]

Поменьше восклицательных знаков в темах топиков, пожалуйста.


 
clickmaker ©   (2003-10-08 14:41) [4]

TabControl со стилем tsButtons внизу формы. Принцип аналогичен AndrewPo © (08.10.03 11:48) [1]


 
AndrewPo ©   (2003-10-08 17:12) [5]

2 Максим:

1.

> нет имени формы на кнопке

как это нет??? а што по-твоему делает вот эта строчка кода???
TB1.Caption:=Form2.Caption;

2.
> когда сворачиваешь окно то она болтается над ТулБаром

а я запретил сворачивать дочерние формы... а то жирно будет :))
дочернюю форму показываю по центру родительской


 
webpauk   (2003-10-08 17:15) [6]

используй компонент ELegantMDI


 
Oleg_Al   (2003-10-09 11:35) [7]

А если усложнить задачу: есть n- цадть (очень много) дочерних форм и хочется поиметь такой же ToolBar, но крайне не хочется к методу вызова каждой из форм цеплять вышеозначенный код.
Есть ли некое событие, реагирующее на создание дочерней формы для заданной главной, к которому и можно было бы привязаться?
Может быть кто-нибудь знает, как работает механизм генерации списка дочерних форм для главного меню (свойство TForm WindowMenu) и можно ли использовать как-то его?



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
1-65542
Vadim S
2003-10-07 14:03
2003.10.20
Как замерить микросекунды?


1-65417
Эдуард
2003-10-06 21:29
2003.10.20
Как из Dll ки определить место, где он лежит?


1-65486
Peter
2003-10-09 13:08
2003.10.20
Я прошу вас мастера...ПОМОГИТЕ ПЛЗ!!!


14-65602
pumba
2003-09-27 19:43
2003.10.20
Землетресение


1-65454
sagchat
2003-10-06 17:41
2003.10.20
Как запретить изменять размер формы?