Главная страница
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.012 c
1-65495
Ma}{
2003-10-08 15:59
2003.10.20
Как показать MainForm на весь экран....


14-65628
Blackman
2003-09-27 21:39
2003.10.20
Суббота 27 сентября 2003 года


1-65549
Jazz
2003-10-08 08:10
2003.10.20
Работа с Richedit


3-65396
griser
2003-09-26 18:36
2003.10.20
Интерфейсы


1-65456
Nikolai_S
2003-10-07 12:45
2003.10.20
Проблема с потоком